<?xml version="1.0" encoding="utf-8"?>
<HmsMediaItem>
  <MediaType>3</MediaType>
  <ClassID>51</ClassID>
  <ItemID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ItemID>
  <ItemPath>https://kino-live1.live</ItemPath>
  <ParentID>234DF17B-418C-4FDC-9DFE-CD0C586D2E76</ParentID>
  <Properties>
    <Property>
      <ID>4</ID>
      <Value>Kino-Live1.live</Value>
    </Property>
    <Property>
      <ID>515</ID>
      <Value>1</Value>
    </Property>
    <Property>
      <ID>700</ID>
      <Value>0</Value>
    </Property>
    <Property>
      <ID>701</ID>
      <Value>-1</Value>
    </Property>
    <Property>
      <ID>702</ID>
      <Value>-1</Value>
    </Property>
    <Property>
      <ID>517</ID>
      <Value>578-720,722-1080,482-576,402-480,322-400,202-320,0-200</Value>
    </Property>
    <Property>
      <ID>518</ID>
      <Value>0</Value>
    </Property>
    <Property>
      <ID>512</ID>
      <Value>0</Value>
    </Property>
    <Property>
      <ID>532</ID>
      <Value>1</Value>
    </Property>
    <Property>
      <ID>553</ID>
      <Value>1</Value>
    </Property>
    <Property>
      <ID>522</ID>
      <Value>0</Value>
    </Property>
    <Property>
      <ID>570</ID>
      <Value>1</Value>
    </Property>
    <Property>
      <ID>245</ID>
      <Value>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</Value>
    </Property>
    <Property>
      <ID>93</ID>
      <Value>43542,4963340741</Value>
    </Property>
    <Property>
      <ID>55</ID>
      <Value>https://sun3-3.userapi.com/c840223/v840223116/8a251/GDimGYroy-s.jpg</Value>
    </Property>
    <Property>
      <ID>527</ID>
      <Value>--addinfoitems</Value>
    </Property>
    <Property>
      <ID>550</ID>
      <Value>string    gsUrlBase    = "https://kino-live1.live";// База для относительных ссылок
int       gnTotalItems = 0;                        // Счётчик созданных элементов
TDateTime gStart       = Now;                      // Время начала запуска скрипта
string    gsTime       = "00:35:00.000";           // Продолжительность видео
int       mpiCountry   = 10012;                    // Идентификаторы для хранения дополнительной
int       mpiTranslate = 10013;                    // информации в свойствах подкаста
int       mpiQuality   = 10014;
int       mpiVideoMessage = 1001001;
string    gsPodcastName   = "kino-live1.live";
string    gsPreviewPrefix = &apos;kino-live1&apos;;          // Префикс кеша информационных картинок на сервере wonky.lostcut.net

///////////////////////////////////////////////////////////////////////////////
// Создание информационной ссылки
void CreateInfoItem(string sName, string sVal) {
  THmsScriptMediaItem Item; sVal = Trim(sVal);
  if (sVal=="") return;
  Item = HmsCreateMediaItem(&apos;Info&apos;+IntToStr(PodcastItem.ChildCount), PodcastItem.ItemID);
  Item[mpiTitle     ] = sName+&apos;: &apos;+sVal;
  Item[mpiThumbnail ] = &apos;http://wonky.lostcut.net/vids/info.jpg&apos;;
  Item[mpiTimeLength] = 9;
  Item[mpiCreateDate] = VarToStr(IncTime(gStart,0,-gnTotalItems,0,0));
  gnTotalItems++;
}

///////////////////////////////////////////////////////////////////////////////
// Создание ссылки-ошибки
void CreateErrorItem(string sMsg) {
  THmsScriptMediaItem Item = HmsCreateMediaItem(&apos;http://wonky.lostcut.net/vids/podcasterror_hd.mp4&apos;, PodcastItem.ItemID);
  Item[mpiTitle     ] = sMsg;
  Item[mpiThumbnail ] = &apos;http://wonky.lostcut.net/icons/symbol-error.png&apos;;
}

///////////////////////////////////////////////////////////////////////////////
// Создание ссылки на видео
THmsScriptMediaItem CreateMediaItem(THmsScriptMediaItem Folder, string sTitle, string sLink=&apos;&apos;, string sGrp=&apos;&apos;) {
  THmsScriptMediaItem Item = HmsCreateMediaItem(sLink, Folder.ItemID, sGrp);
  Item[mpiTitle     ] = sTitle;
  Item[mpiCreateDate] = VarToStr(IncTime(gStart,0,-gnTotalItems,0,0));
  Item[mpiTimeLength] = gsTime;
  Item.CopyProperties(PodcastItem, [mpiThumbnail,mpiYear,mpiActor,mpiDirector,mpiProducer,mpiGenre]);
  gnTotalItems++;
  return Item;
}

///////////////////////////////////////////////////////////////////////////////
// Создание папки подкаста
THmsScriptMediaItem CreateFolder(THmsScriptMediaItem ParentFolder, string sName, string sLink, string sImg=&apos;&apos;) {
  if (sImg==&apos;&apos;) sImg = mpThumbnail;
  THmsScriptMediaItem Item = ParentFolder.AddFolder(sLink); // Создаём папку с указанной ссылкой
  Item[mpiTitle     ] = sName; // Присваиваем наименование
  Item[mpiThumbnail ] = sImg;  // Картинка
  Item[mpiCreateDate] = DateTimeToStr(IncTime(gStart, 0, -gnTotalItems, 0, 0)); // Для обратной сортировки по дате создания
  gnTotalItems++;             // Увеличиваем счетчик созданных элементов
  return Item;                // Возвращаем созданный объект
}

///////////////////////////////////////////////////////////////////////////////
// Вывод видео сообщения с заданным текстом
void ShowVideoMessage(string sMsg, string sTitle=&apos;&apos;, int nErr=0, string sDescr=&apos;&apos;) {
  if (nErr==1) sMsg = &apos;&lt;c:#e22&gt;&apos;+Trim(sMsg); 
  TStrings INFO = TStringList.Create();
  INFO.Values[&apos;Title&apos; ] = sTitle;
  INFO.Values[&apos;Info&apos;  ] = sMsg;
  INFO.Values[&apos;Descr&apos; ] = sDescr;
  PodcastItem[mpiVideoMessage] = INFO.Text;
  INFO.Free();
  VideoPreview();
}

///////////////////////////////////////////////////////////////////////////////
// Получение ссылки на Youtube ------------------------------------------------
void GetLink_Youtube31(string sLink) {
  string sData, sVideoID=&apos;&apos;, sMaxHeight=&apos;&apos;, sAudio=&apos;&apos;, sSubtitlesLanguage=&apos;ru&apos;,
  sSubtitlesUrl, sFile, sVal, sMsg, sConfig, sHeaders; 
  TJsonObject JSON; TRegExpr RegEx;
  
  sHeaders = &apos;Referer: &apos;+sLink+#13#10+
             &apos;User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36&apos;+#13#10+
             &apos;Origin: http://www.youtube.com&apos;+#13#10;
  
  HmsRegExMatch(&apos;--maxheight=(\\d+)&apos;    , mpPodcastParameters, sMaxHeight);
  HmsRegExMatch(&apos;--sublanguage=(\\w{2})&apos;, mpPodcastParameters, sSubtitlesLanguage);
  bool bSubtitles = (Pos(&apos;--subtitles&apos;  , mpPodcastParameters)&gt;0);  
  bool bAdaptive  = (Pos(&apos;--adaptive&apos;   , mpPodcastParameters)&gt;0);  
  bool bNotDE     = (Pos(&apos;notde=1&apos;      , sLink)&gt;0);  
  
  if (!HmsRegExMatch(&apos;[\\?&amp;]v=([^&amp;]+)&apos;       , sLink, sVideoID))
    if (!HmsRegExMatch(&apos;youtu.be/([^&amp;]+)&apos;      , sLink, sVideoID))
    HmsRegExMatch(&apos;/(?:embed|v)/([^\\?]+)&apos;, sLink, sVideoID);
  
  if (sVideoID==&apos;&apos;) { HmsLogMessage(2, &apos;Невозможно получить Video ID в ссылке Youtube&apos;); return; }
  
  sLink = &apos;http://www.youtube.com/watch?v=&apos;+sVideoID+&apos;&amp;hl=ru&amp;persist_hl=1&amp;has_verified=1&apos;;
  
  sData = HmsDownloadURL(sLink, sHeaders, true);
  sData = HmsRemoveLineBreaks(sData);
  if (!HmsRegExMatch(&apos;player.config\\s*?=\\s*?({.*?});&apos;, sData, sConfig)) {
    // Если в загруженной странице нет нужной информации, пробуем немного по-другому
    sLink = &apos;http://hms.lostcut.net/youtube/g.php?v=&apos;+sVideoID;
    if (sMaxHeight!=&apos;&apos;                  ) sLink += &apos;&amp;max_height=&apos;+sMaxHeight;
    if (Trim(mpPodcastMediaFormats )!=&apos;&apos;) sLink += &apos;&amp;media_formats=&apos;+mpPodcastMediaFormats;
    if (bAdaptive                       ) sLink += &apos;&amp;adaptive=1&apos;;
    sData = HmsUtf8Decode(HmsDownloadUrl(sLink));
    if (HmsRegExMatch(&apos;"reason":"(.*?)"&apos; , sData, sMsg)) { 
      HmsLogMessage(2 , sMsg); 
      //VideoMessage(sMsg); 
      return; 
    } else {
      sData = HmsJsonDecode(sData);
      HmsRegExMatch(&apos;"url":"(.*?)"&apos;, sData, MediaResourceLink);
      return;
    }
  }
  
  String hlsUrl, ttsUrl, flp, jsUrl, dashMpdLink, streamMap, playerId, algorithm;
  String sType, itag, sig, alg, s;
  String UrlBase = "";
  int  i, n, w, num, height, priority, minPriority = 90, selHeight, maxHeight = 1080;
  bool is3D; 
  TryStrToInt(sMaxHeight, maxHeight);
  JSON = TJsonObject.Create();
  try {
    JSON.LoadFromString(sConfig);
    hlsUrl      = HmsExpandLink(JSON.S[&apos;args\\hlsvp&apos; ], UrlBase);
    ttsUrl      = HmsExpandLink(JSON.S[&apos;args\\ttsurl&apos;], UrlBase);
    flp         = HmsExpandLink(JSON.S[&apos;url&apos;         ], UrlBase);
    jsUrl       = HmsExpandLink(JSON.S[&apos;assets\\js&apos;  ], UrlBase);
    streamMap   = JSON.S[&apos;args\\url_encoded_fmt_stream_map&apos;];
    if (bAdaptive &amp;&amp; JSON.B[&apos;args\\adaptive_fmts&apos;]) 
      streamMap = JSON.S[&apos;args\\adaptive_fmts&apos;];
    if ((streamMap==&apos;&apos;) &amp;&amp; (hlsUrl==&apos;&apos;)) {
      sMsg = "Невозможно найти данные для воспроизведения на странице видео.";
      if (HmsRegExMatch(&apos;(&lt;h\\d[^&gt;]+class="message".*?&lt;/h\\d&gt;)&apos;, sData, sMsg)) sMsg = HmsUtf8Decode(HmsHtmlToText(sMsg));
      HmsLogMessage(2, sMsg);
      //VideoMessage(sMsg); 
      return;
    }
  } finally { JSON.Free; }
  if (Copy(jsUrl, 1, 2)==&apos;//&apos;) jsUrl = &apos;http:&apos;+Trim(jsUrl);
  HmsRegExMatch(&apos;/player-([\\w_-]+)/&apos;, jsUrl, playerId);
  algorithm = HmsDownloadURL(&apos;https://hms.lostcut.net/youtube/getalgo.php?jsurl=&apos;+HmsHttpEncode(jsUrl));
  
  if (hlsUrl!=&apos;&apos;) {
    MediaResourceLink = &apos; &apos;+hlsUrl;
    
    sData = HmsDownloadUrl(sLink, sHeaders, true);
    RegEx = TRegExpr.Create(&apos;BANDWIDTH=(\\d+).*?RESOLUTION=(\\d+)x(\\d+).*?(http[^#]*)&apos;, PCRE_SINGLELINE);
    try {
      if (RegEx.Search(sData)) do {
        sLink = &apos;&apos; + RegEx.Match(4);
        height = StrToIntDef(RegEx.Match(3), 0);
        if (mpPodcastMediaFormats!=&apos;&apos;) {
          priority = HmsMediaFormatPriority(height, mpPodcastMediaFormats);
          if ((priority&gt;=0) &amp;&amp; (priority&gt;minPriority)) {
            MediaResourceLink = sLink; minPriority = priority;
          }
        } else if ((height &gt; selHeight) &amp;&amp; (height &lt;= maxHeight)) {
          MediaResourceLink = sLink; selHeight = height;
        }
      } while (RegEx.SearchAgain());
    } finally { RegEx.Free(); }
    
  } else if (streamMap!=&apos;&apos;) {
    i=1; while (i&lt;=Length(streamMap)) {
      sData = Trim(ExtractStr(streamMap, &apos;,&apos;, i));
      sType = HmsHttpDecode(ExtractParam(sData, &apos;type&apos;, &apos;&apos;, &apos;&amp;&apos;));
      itag  = ExtractParam(sData, &apos;itag&apos;    , &apos;&apos;, &apos;&amp;&apos;);
      is3D  = ExtractParam(sData, &apos;stereo3d&apos;, &apos;&apos;, &apos;&amp;&apos;) == &apos;1&apos;;
      sLink = &apos;&apos;;
      if (Pos(&apos;url=&apos;, sData)&gt;0) {
        sLink = &apos; &apos; + HmsHttpDecode(ExtractParam(sData, &apos;url&apos;, &apos;&apos;, &apos;&amp;&apos;));
        if (Pos(&apos;&amp;signature=&apos;, sLink)==0) {
          sig = HmsHttpDecode(ExtractParam(sData, &apos;sig&apos;, &apos;&apos;, &apos;&amp;&apos;));    
          if (sig==&apos;&apos;) {
            sig = HmsHttpDecode(ExtractParam(sData, &apos;s&apos;, &apos;&apos;, &apos;&amp;&apos;));
            for (w=1; w&lt;=WordCount(algorithm, &apos; &apos;); w++) {
              alg = ExtractWord(w, algorithm, &apos; &apos;);
              if (Length(alg)&lt;1) continue;
              if (Length(alg)&gt;1) TryStrToInt(Copy(alg, 2, 4), num);
              if (alg[1]==&apos;r&apos;) {s=&apos;&apos;; for(n=Length(sig); n&gt;0; n--) s+=sig[n]; sig = s;   } // Reverse
              if (alg[1]==&apos;s&apos;) {sig = Copy(sig, num+1, Length(sig));                     } // Clone
              if (alg[1]==&apos;w&apos;) {n = (num-Trunc(num/Length(sig)))+1; Swap(sig[1], sig[n]);} // Swap
            }
          }
          if (sig!=&apos;&apos;) sLink += &apos;&amp;signature=&apos; + sig;
        }
      }
      if (itag in ([139,140,141,171,172])) { sAudio = sLink; continue; }
      if (sLink!=&apos;&apos;) {
        height = 0; //http://www.genyoutube.net/formats-resolution-youtube-videos.html
        if      (itag in ([13,17,160                  ])) height = 144;
        else if (itag in ([5,36,92,132,133,242        ])) height = 240;
        else if (itag in ([6                          ])) height = 270;
        else if (itag in ([18,34,43,82,100,93,134,243 ])) height = 360;
        else if (itag in ([35,44,83,101,94,135,244,43 ])) height = 480;
        else if (itag in ([22,45,84,102,95,136,298,247])) height = 720;
        else if (itag in ([37,46,85,96,137,248,299    ])) height = 1080;
        else if (itag in ([264,271                    ])) height = 1440;
        else if (itag in ([266,138                    ])) height = 2160;
        else if (itag in ([272                        ])) height = 2304;
        else if (itag in ([38                         ])) height = 3072;
        else continue;
        if (mpPodcastMediaFormats!=&apos;&apos;) {
          priority = HmsMediaFormatPriority(height, mpPodcastMediaFormats);
          if ((priority&gt;=0) || (priority&lt;minPriority)) {
            MediaResourceLink = sLink; minPriority = priority; selHeight = height;
          }
        } else if ((height&gt;selHeight) &amp;&amp; (height&lt;= maxHeight)) {
          MediaResourceLink = sLink; selHeight = height;
        }
      }
    }
    if (bAdaptive &amp;&amp; (sAudio!=&apos;&apos;)) MediaResourceLink = &apos;-i "&apos;+Trim(MediaResourceLink)+&apos;" -i "&apos;+Trim(sAudio)+&apos;"&apos;;
    
  }
  // Если есть субтитры и в дополнительных параметрах указано их показывать - загружаем 
  if (bSubtitles &amp;&amp; (ttsUrl!=&apos;&apos;)) {
    sFile = HmsSubtitlesDirectory+&apos;\\Youtube\\&apos;+PodcastItem.ItemID+&apos;.&apos;+sSubtitlesLanguage+&apos;.srt&apos;;
    sLink = ttsUrl+&apos;&amp;fmt=srt&amp;lang=&apos;; 
    if (!HmsDownloadURLToFile(sLink+sSubtitlesLanguage, sFile, &apos;Accept-Encoding: gzip, deflate&apos;)) {
      HmsDownloadURLToFile(sLink+&apos;en&apos;                 , sFile, &apos;Accept-Encoding: gzip, deflate&apos;);
    }
    PodcastItem[mpiSubtitleLanguage] = sFile;
  }
}

///////////////////////////////////////////////////////////////////////////////
// Формирование видео с картинкой с информацией о фильме
bool VideoPreview() {
  string sVal, sFileImage, sPoster, sTitle, sDescr, sCateg, sInfo, sLink, sData;
  int xMargin=7, yMargin=10, nSeconds=10, n; string sCacheDir;
  float nH=cfgTranscodingScreenHeight, nW=cfgTranscodingScreenWidth;
  // Проверяем и, если указаны в параметрах подкаста, выставляем значения смещения от краёв
  if (HmsRegExMatch(&apos;--xmargin=(\\d+)&apos;, mpPodcastParameters, sVal)) xMargin=StrToInt(sVal);
  if (HmsRegExMatch(&apos;--ymargin=(\\d+)&apos;, mpPodcastParameters, sVal)) yMargin=StrToInt(sVal);
  sCacheDir = IncludeTrailingBackslash(HmsTempDirectory);

  if (Trim(PodcastItem[mpiVideoMessage])==&apos;&apos;) return; // Если нет инфы - выходим быстро!
  TStrings INFO = TStringList.Create();       // Создаём объект TStrings
  INFO.Text  = PodcastItem[1001001];          // И загружаем туда информацию
  sPoster = INFO.Values[&apos;Poster&apos;];            // Постер
  sTitle  = INFO.Values[&apos;Title&apos; ];            // Самая верхняя надпись - Название
  sCateg  = INFO.Values[&apos;Genre&apos; ];            // Жанр
  sInfo   = INFO.Values[&apos;Info&apos;  ];            // Блок информации
  sDescr  = INFO.Values[&apos;Descr&apos; ];            // Описание
  if (sTitle==&apos;&apos;) sTitle = &apos; &apos;;
  ForceDirectories(sCacheDir);
  sFileImage = ExtractShortPathName(sCacheDir)+&apos;videopreview_&apos;; // Файл-заготовка для сохранения картинки
  sDescr = Copy(sDescr, 1, 3000); // Если блок описания получился слишком большой - обрезаем

  INFO.Text = ""; // Очищаем объект TStrings для формирования параметров запроса
  INFO.Values[&apos;prfx&apos; ] = gsPreviewPrefix;  // Префикс кеша сформированных картинок на сервере
  INFO.Values[&apos;title&apos;] = sTitle;           // Блок - Название
  INFO.Values[&apos;info&apos; ] = sInfo;            // Блок - Информация
  INFO.Values[&apos;categ&apos;] = sCateg;           // Блок - Жанр/категории
  INFO.Values[&apos;descr&apos;] = sDescr;           // Блок - Описание фильма
  INFO.Values[&apos;mlinfo&apos;] = &apos;20&apos;;            // Максимальное число срок блока Info
  INFO.Values[&apos;w&apos; ] = IntToStr(Round(nW)); // Ширина кадра
  INFO.Values[&apos;h&apos; ] = IntToStr(Round(nH)); // Высота кадра
  INFO.Values[&apos;xm&apos;] = IntToStr(xMargin);   // Отступ от краёв слева/справа
  INFO.Values[&apos;ym&apos;] = IntToStr(yMargin);   // Отступ от краёв сверху/снизу
  INFO.Values[&apos;bg&apos;] = &apos;http://www.pageresource.com/wallpapers/wallpaper/noir-blue-dark_3512158.jpg&apos;; // Катринка фона (кэшируется на сервере) 
  INFO.Values[&apos;fx&apos;] = &apos;3&apos;; // Номер эффекта для фона: 0-нет, 1-Blur, 2-more Blur, 3-motion Blur, 4-radial Blur
  INFO.Values[&apos;fztitle&apos;] = IntToStr(Round(nH/14)); // Размер шрифта блока названия (тут относительно высоты кадра)
  INFO.Values[&apos;fzinfo&apos; ] = IntToStr(Round(nH/22)); // Размер шрифта блока информации
  INFO.Values[&apos;fzcateg&apos;] = IntToStr(Round(nH/26)); // Размер шрифта блока жанра/категории
  INFO.Values[&apos;fzdescr&apos;] = IntToStr(Round(nH/18)); // Размер шрифта блока описания
  // Если текста описания больше чем нужно - немного уменьшаем шрифт блока
  if (Length(sDescr)&gt;890) INFO.Values[&apos;fzdescr&apos;] = IntToStr(Round(nH/20));
  // Если есть постер, задаём его параметры отображения (где, каким размером)
  if (sPoster!=&apos;&apos;) {
    INFO.Values[&apos;wpic&apos;  ] = IntToStr(Round(nW/4)); // Ширина постера (1/4 ширины кадра)
    INFO.Values[&apos;xpic&apos;  ] = &apos;10&apos;;    // x-координата постера
    INFO.Values[&apos;ypic&apos;  ] = &apos;10&apos;;    // y-координата постера
    if (mpFilePath==&apos;InfoUpdate&apos;) {
      INFO.Values[&apos;wpic&apos;  ] = IntToStr(Round(nW/6)); // Ширина постера (1/6 ширины кадра)
      INFO.Values[&apos;xpic&apos;  ] = IntToStr(Round(nW/2 - nW/12)); // центрируем
    }
    INFO.Values[&apos;urlpic&apos;] = sPoster; // Адрес изображения постера
  }
  sData = &apos;&apos;;  // Из установленных параметров формируем строку POST запроса
  for (n=0; n&lt;INFO.Count; n++) sData += &apos;&amp;&apos;+Trim(INFO.Names[n])+&apos;=&apos;+HmsHttpEncode(INFO.Values[INFO.Names[n]]);
  INFO.Free(); // Освобождаем объект из памяти, теперь он нам не нужен
  // Делаем POST запрос не сервер формирования картинки с информацией
  sLink = HmsSendRequestEx(&apos;wonky.lostcut.net&apos;, &apos;/videopreview.php?p=&apos;+gsPreviewPrefix, &apos;POST&apos;, 
               &apos;application/x-www-form-urlencoded&apos;, &apos;&apos;, sData, 80, 0, &apos;&apos;, true);
  // В ответе должна быть ссылка на сформированную картинку
  if (LeftCopy(sLink, 4)!=&apos;http&apos;) {HmsLogMessage(2, &apos;Ошибка получения файла информации videopreview.&apos;); return;}
  // Сохраняем сформированную картинку с информацией в файл на диске
  HmsDownloadURLToFile(sLink, sFileImage);
  // Копируем и нумеруем файл картики столько раз, сколько секунд мы будем её показывать
  for (n=1; n&lt;=nSeconds; n++) CopyFile(sFileImage, sFileImage+Format(&apos;%.3d.jpg&apos;, [n]), false);
  // Для некоторых телевизоров (Samsung) видео без звука отказывается проигрывать, поэтому скачиваем звук тишины
  char sFileMP3 = ExtractShortPathName(HmsTempDirectory)+&apos;\\silent.mp3&apos;;
  try {
    if (!FileExists(sFileMP3)) HmsDownloadURLToFile(&apos;http://wonky.lostcut.net/mp3/silent.mp3&apos;, sFileMP3);
    sFileMP3 = &apos;-i "&apos;+sFileMP3+&apos;"&apos;;
  } except { sFileMP3=&apos;&apos;; }
  // Формируем из файлов пронумерованных картинок и звукового команду для формирования видео
  MediaResourceLink = Format(&apos;%s -f image2 -r 1 -i "%s" -c:v libx264 -pix_fmt yuv420p &apos;, [sFileMP3, sFileImage+&apos;%03d.jpg&apos;]);
}

///////////////////////////////////////////////////////////////////////////////
// Вывод вместо видео заданного сообщения
bool VideoMessage(char sCaption, char sMessage, int nTime=30) {
  char sFileImage = HmsTempDirectory+&apos;\\videomessage.jpg&apos;; char sCmd;
  sCaption = HmsHttpEncode(ReplaceStr(sCaption, &apos;\n&apos;, &apos;|&apos;));
  sMessage = HmsHttpEncode(ReplaceStr(sMessage, &apos;\n&apos;, &apos;|&apos;));
  HmsDownloadURLToFile(&apos;http://wonky.lostcut.net/videomessage.php?testpic=1&amp;caption=&apos;+sCaption+&apos;&amp;msg=&apos;+sMessage, sFileImage);
  char sFileMP3 = HmsTempDirectory+&apos;\\silent.mp3&apos;;
  try {
    if (!FileExists(sFileMP3)) HmsDownloadURLToFile(&apos;http://wonky.lostcut.net/mp3/silent.mp3&apos;, sFileMP3);
    sFileMP3 = &apos;-i "&apos;+sFileMP3+&apos;"&apos;;
  } except {
    sFileMP3 = &apos;&apos;;
  }
  sCmd = Format(&apos;%s -loop 1 -f image2 -i "%s" -t %d -r 25 &apos;, [ExtractShortPathName(sFileMP3), ExtractShortPathName(sFileImage), 7]);
  MediaResourceLink = sCmd;
}

///////////////////////////////////////////////////////////////////////////////
// Вывод видео сообщения с информацией о фильме
void ShowVideoInfo() {
  string sInfo; THmsScriptMediaItem Parent = PodcastItem.ItemParent;

  sInfo = &apos;&apos;;
  if (Trim(Parent[mpiCountry  ])!=&apos;&apos;) sInfo += &apos;Страна: &apos;  +Parent[mpiCountry  ]+"|";
  if (Trim(Parent[mpiTranslate])!=&apos;&apos;) sInfo += &apos;Перевод: &apos; +Parent[mpiTranslate]+"|";
  if (Trim(Parent[mpiQuality  ])!=&apos;&apos;) sInfo += &apos;Качество: &apos;+Parent[mpiQuality  ]+"|";
  if (Trim(Parent[mpiDirector ])!=&apos;&apos;) sInfo += &apos;Режиссер: &apos;+Parent[mpiDirector ]+"|";
  if (Trim(Parent[mpiActor    ])!=&apos;&apos;) sInfo += &apos;В ролях: &apos; +Parent[mpiActor    ]+"|";
  sInfo = Copy(sInfo, 1, Length(sInfo)-1); // Обрезаем последний символ "|"
  TStrings INFO = TStringList.Create();
  INFO.Values[&apos;Poster&apos;] = Parent[mpiThumbnail];
  INFO.Values[&apos;Title&apos; ] = Parent[mpiTitle];
  INFO.Values[&apos;Genre&apos; ] = Parent[mpiGenre];
  INFO.Values[&apos;Info&apos;  ] = sInfo;
  INFO.Values[&apos;Descr&apos; ] = ReplaceStr(Parent[mpiComment], "\n", "|");
  PodcastItem[mpiVideoMessage] = INFO.Text;
  INFO.Free();
  VideoPreview();
}

///////////////////////////////////////////////////////////////////////////////
/// Создание ссылок на файл(ы) по переданной ссылке (шаблону) -------------
void CreateVideoLink(THmsScriptMediaItem Folder, string sName, string sLink, bool bSeparateInFolders=false) {
  string sCut, sQualArray, sQual, sFile; int i, nCount; // Объявляем переменные
  
  // Проверяем, есть ли в переданной ссылке шаблон с массивом существующего качества "[720,480,360]"
  if (HmsRegExMatch(&apos;\\[(.*?)\\]&apos;, sLink, sQualArray)) {
    sCut   = &apos;[&apos;+sQualArray+&apos;]&apos;;                   // Та часть, которая будет заменятся на индификатор качества
    nCount = WordCount (sQualArray, &apos;,&apos;);          // Количество елементов, разделённых запятой
    for (i=1; i&lt;=nCount; i++) {
      sQual = ExtractWord(i, sQualArray, &apos;,&apos;);     // Получаем очередной индификатор качества
      if (sQual==&apos;&apos;) continue;                     // Может быть пропущен, если не указан
        sFile = ReplaceStr(sLink, sCut, sQual);      // Формируем ссылку на файл, заменяя шаблон на индификатор качества
      if (bSeparateInFolders) {                    // Если был передан флаг "Группировать файлы качества по разным папкам",
        CreateMediaItem(Folder, sName, sFile, sQual); // то передаём индификатор качества как имя группы, где будет создана ссылка
      } else {
        if (sName==&apos;&apos;) HmsRegExMatch(&apos;.*/(.*)&apos;, sLink, sName); // Получаем имя файла из ссылки (всё что идёт после последнего слеша)
          sName = ReplaceStr(sName, sCut, &apos;&apos;);          // Убираем перечисление качества из имени
        sName = ReplaceStr(sName, &apos;_&apos;, &apos;&apos;);           // А также подчекривания (лишние)
        CreateMediaItem(Folder, sQual+&apos; &apos;+sName, sFile); // Добавляем индификатор качества к началу имени и создаём ссылку
      }
    }
    
    // Проверяем, есть ли в переданной ссылке просто запятые, т.е. перечисление ссылок
  } else if (Pos(&apos;,&apos;, sLink)&gt;0) {
    
    for (i=1; i&lt;=WordCount(sLink, &apos;,&apos;); i++) {
      sQual = &apos;&apos;;
      sFile = ExtractWord(i, sLink, &apos;,&apos;);
      sName = ExtractFileName(sFile);
      HmsRegExMatch(&apos;.*/(.*)&apos;, sName, sName);
      if (HmsRegExMatch2(&apos;^(.*)_(\\d+)\\.&apos;, sName, sName, sQual)) {
        sQual = &apos;[&apos;+Trim(sQual)+&apos;]&apos;;
      }
      if (bSeparateInFolders) {                    // Если был передан флаг "Группировать файлы качества по разным папкам",
        CreateMediaItem(Folder, sName, sFile, sQual); // то передаём индификатор качества как имя группы, где будет создана ссылка
      } else {
        CreateMediaItem(Folder, sQual+&apos; &apos;+sName, sFile);
      }
    }
    
    
  } else {
    // Если шаблона выбора качества в ссылке нет, то просто создаём ссылку
    if (sName==&apos;&apos;) HmsRegExMatch(&apos;.*/(.*)&apos;, sLink, sName); // Если имя пустое, получаем имя файла из ссылки (всё что идёт после последнего слеша)
      CreateMediaItem(Folder, sName, sLink);
    
  }
}

///////////////////////////////////////////////////////////////////////////////
// Создание серий из плейлиста
void CreateSeriesFromPlaylist(THmsScriptMediaItem Folder, string sLink, string sName=&apos;&apos;) {
  string sData, s1, s2, s3; int i; TJsonObject JSON, PLITEM; TJsonArray PLAYLIST; // Объявляем переменные
  
  // Если передано имя плейлиста, то создаём папку, в которой будем создавать элементы
  if (Trim(sName)!=&apos;&apos;) Folder = Folder.AddFolder(sName);
  
  // Если в переменной sLink сожержится знак &apos;{&apos;, то там не ссылка, а сами данные Json
  if (Pos(&apos;{&apos;, sLink)&gt;0) {
    sData = sLink;
  } else {
    sData = HmsDownloadURL(sLink, "Referer: "+mpFilePath, true);  // Загружаем плейлист
    sData = HmsUtf8Decode(sData);
  }
  
  JSON  = TJsonObject.Create();                 // Создаём объект для работы с Json
  try {
    JSON.LoadFromString(sData);                 // Загружаем json данные в объект
    PLAYLIST = JSON.A[&apos;playlist&apos;];              // Пытаемся получить array с именем &apos;playlist&apos;
    if (PLAYLIST==nil) PLAYLIST = JSON.AsArray; // Если массив &apos;playlist&apos; получить не получилось, то представляем все наши данные как массив
    if (PLAYLIST!=nil) {                        // Если получили массив, то запускаем обход всех элементов в цикле
      for (i=0; i&lt;PLAYLIST.Length; i++) {
        PLITEM = PLAYLIST[i];                   // Получаем текущий элемент массива
        sName = PLITEM.S[&apos;comment&apos;];            // Название - значение поля comment
        sLink = PLITEM.S[&apos;file&apos;   ];            // Получаем значение ссылки на файл
        sName = ReplaceStr(ReplaceStr(HmsHtmlToText(sName), "\n", &apos; &apos;), "\r", &apos;&apos;);
        // Форматируем числовое представление серий в названии
        // Если в названии есть число, то будет в s1 - то, что стояло перед ним, s2 - само число, s3 - то, что было после числа
        if (HmsRegExMatch3(&apos;^(.*?)(\\d+)(.*)$&apos;, sName, s1, s2, s3))
          sName = Trim(Format(&apos;%s %.2d %s&apos;, [s1, StrToInt(s2), s3])); // Форматируем имя - делаем число двухцифровое (01, 02...)
        if (LeftCopy(sLink, 4)==&apos;oid=&apos;) sLink = &apos;http://vk.com/video_ext.php?&apos;+Trim(sLink);
        
        // Проверяем, если это вложенный плейлист - запускаем создание элементов из этого плейлиста рекурсивно
        if (PLITEM.B[&apos;playlist&apos;])
          CreateSeriesFromPlaylist(Folder, PLITEM.S[&apos;playlist&apos;], sName);
        else
          CreateVideoLink(Folder, sName, sLink, true); // Иначе просто создаём ссылки на видео
      }
    } // end if (PLAYLIST!=nil)
    
  } finally { JSON.Free; }                      // Какие бы ошибки не случились, освобождаем объект из памяти
}

///////////////////////////////////////////////////////////////////////////////
// Javascript Eval (Danger! Может быть исполнен вредоностный код с сайта) -----
char jsEval(char sData) {
  Variant objScript, objJS; char sResult = &apos;&apos;;
  try {objScript = CreateOleObject(&apos;MSScriptControl.ScriptControl&apos;);} except {};
  if (VarType(objScript) != varDispatch) {
    HmsLogMessage(2, &apos;Не могу создать ActiveXObject MSScriptControl.ScriptControl&apos;);
    return &apos;&apos;;
  }
  objScript.Language = &apos;JavaScript&apos;;
  try {sResult = objScript.Eval(sData);} except {};
  return sResult;
}

///////////////////////////////////////////////////////////////////////////////
// Создание папок сезонов
void CreateSeasons(string sHtml) {
  string sData, sLink, sName, sTime, sImg, sVal, s1, s2, s3, sSeason;
  THmsScriptMediaItem Item; TRegExpr RegEx; int n;
  
  HmsRegExMatch(&apos;&lt;seasons&gt;(.*?)&lt;/seasons&gt;&apos;, sHtml, sData);
  RegEx = TRegExpr.Create(&apos;(&lt;a.*?&lt;/a&gt;)&apos;, PCRE_SINGLELINE);
  n = 0;
  try {
    if (RegEx.Search(sHtml)) do {
      sLink=&apos;&apos;; sName=&apos;&apos;;
      HmsRegExMatch(&apos;(&lt;a.*?&lt;/a&gt;)&apos;        , RegEx.Match, sName);
      HmsRegExMatch(&apos;&lt;a[^&gt;]+href="(.*?)"&apos;, RegEx.Match, sLink);
      if (Trim(sLink)=="") continue;
      n++;
      
      sName = ReplaceStr(HmsHtmlToText(sName), "/", "-");
      sLink = HmsExpandLink(sLink, gsUrlBase);

      // Форматируем номера сезонов в двуцифровой формат
      if (HmsRegExMatch3(&apos;^(.*?)(\\d+)(.*)&apos;, sName, s1, s2, s3))
        sName = Trim(Format(&apos;%s %.2d %s&apos;, [s1, StrToInt(s2), s3]));
      
      sLink += &apos;&amp;season=&apos;+IntToStr(n);
      CreateFolder(PodcastItem, sName, sLink); // Создание папки сезона

    } while (RegEx.SearchAgain);
  } finally { RegEx.Free(); }
}

///////////////////////////////////////////////////////////////////////////////
string NormVal(string sVal) {
  string sName = HmsHtmlToText(sVal);
  sName = ReplaceStr(sName, &apos;|&apos;, &apos;&apos;);
  return Trim(sName);
}

///////////////////////////////////////////////////////////////////////////////
// Создание ссылок видео
void CreateLinks() {
  string sHtml, sData, sLink, sName, sTime, sImg, sVal, sSeason, sID;
  THmsScriptMediaItem Item; TRegExpr RegEx;
  
  sSeason = &apos;&apos;;
  HmsRegExMatch(&apos;season=(\\d+)&apos;, mpFilePath, sSeason);
  
  sHtml = HmsDownloadURL(mpFilePath, &apos;Referer: &apos;+mpFilePath, true);
  sHtml = HmsUtf8Decode(sHtml);
  sHtml = HmsRemoveLineBreaks(sHtml);
  
  // =========================================================================
  // Сбор информации о фильме
  if (HmsRegExMatch(&apos;&lt;br /&gt;Год:(.+?)&lt;br /&gt;&apos;, sHtml, sVal)) PodcastItem[mpiYear] = sVal;
  if (HmsRegExMatch(&apos;Продолжительность:.*?(\\d{2}:\\d{2}:\\d{2})&apos;, sHtml, sVal)) gsTime = sVal+&apos;.000&apos;;
  if (HmsRegExMatch(&apos;Продолжительность:.*?(\\d+)\\s*мин&apos;, sHtml, sVal)) gsTime = HmsTimeFormat(StrToInt(sVal)*60)+&apos;.000&apos;;
  if (HmsRegExMatch(&apos;&lt;br /&gt;Жанр:(.+?)&lt;br /&gt;&apos;    , sHtml, sVal)) PodcastItem[mpiGenre    ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;&lt;br /&gt;Продолжительность:(.+?)&lt;br /&gt;&apos;    , sHtml, sVal)) PodcastItem[mpiTimeLength    ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;&lt;br /&gt;Страна:(.+?)&lt;br /&gt;&apos;  , sHtml, sVal)) PodcastItem[mpiCountry  ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;&lt;br /&gt;Выпущено:(.+?)&lt;br /&gt;&apos;  , sHtml, sVal)) PodcastItem[mpiAlbum  ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;&lt;br /&gt;Продюссер:(.+?)&lt;br /&gt;&apos;  , sHtml, sVal)) PodcastItem[mpiProducer  ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;&lt;br /&gt;Перевод:(.+?)&lt;br /&gt;&apos; , sHtml, sVal)) PodcastItem[mpiTranslate] = NormVal(sVal);
  if (HmsRegExMatch(&apos;&lt;br /&gt;Качество:(.+?)&lt;br /&gt;&apos;, sHtml, sVal)) PodcastItem[mpiQuality  ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;&lt;br /&gt;Режиссер:(.+?)&lt;br /&gt;&apos;, sHtml, sVal)) PodcastItem[mpiDirector ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;&lt;br /&gt;В ролях:(.*?)&lt;/div&gt;&apos; , sHtml, sVal)) PodcastItem[mpiActor    ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;&lt;div class="tezt"&gt;(.*?)&lt;br /&gt;&lt;br /&gt;&apos; , sHtml, sVal)) PodcastItem[mpiMood    ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;&lt;br /&gt;imdb:(.+?) | Кинопоиск:&apos;    , sHtml, sVal)) PodcastItem[mpiIMDBInfo ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;Кинопоиск:(.+?) | Бюджет:&apos;    , sHtml, sVal)) PodcastItem[mpiAuthor ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;Бюджет:(.+?)&lt;br /&gt;&apos;    , sHtml, sVal)) PodcastItem[mpiConductor ] = NormVal(sVal);
  if (HmsRegExMatch(&apos;(&lt;div class="tezt"&gt;.*?)&lt;br /&gt;&lt;br /&gt;&apos;, sHtml, sVal)) PodcastItem[mpiComment] = NormVal(sVal);
  if (HmsRegExMatch(&apos;Оригинальное название:(.+?)&lt;br /&gt;&apos;, sHtml, sVal)) mpTitle = NormVal(sVal);
  HmsRegExMatch(&apos;itemprop="thumbnail" content="(.*?)"&apos;, sHtml, mpThumbnail);
  PodcastItem[mpiTimeLength] = gsTime;
  PodcastItem[mpiThumbnail ] = mpThumbnail;
  HmsRegExMatch(&apos;^(.*?)/&apos;, mpTitle, mpTitle);
  // =========================================================================
  
  HmsRegExMatch("Base64.decode\\(&apos;(.*?)&apos;", sHtml, sVal);
  sData = HmsRemoveLineBreaks(HmsUtf8Decode(HmsBase64Decode(sVal)));

  // Если на странице есть перечисление сезонов и в данный момент мы не в конкретном
  if ((sSeason==&apos;&apos;) &amp;&amp; HmsRegExMatch(&apos;&lt;Все сезоны сериала&gt;&apos;, sHtml, sLink)) {
    // Создаём список сезонов
    CreateSeasons(sHtml);
      
  } else if (HmsRegExMatch(&apos;flashvars[^&gt;]+file=(.*?)"/&gt;&apos;, sHtml, sLink)) {
    // Создаём ссылку на конкретный фильм
    sLink = HmsExpandLink(sLink, gsUrlBase);
    CreateVideoLink(PodcastItem, mpTitle, sLink);
    
  } else if (HmsRegExMatch(&apos;flashvars[^&gt;]+file=(.*?)" /&gt;&apos;, sHtml, sLink)) {
    // Создаём ссылку на конкретный фильм
    sLink = HmsExpandLink(sLink, gsUrlBase);
    CreateVideoLink(PodcastItem, mpTitle, sLink);
    
  } else if (HmsRegExMatch(&apos;flashvars[^&gt;]+;pl=(.*?)" /&gt;&apos;, sHtml, sLink)) {
    // Создаём ссылки на серии из плейлиста
    sLink = HmsExpandLink(sLink, gsUrlBase);
    sData = HmsUtf8Decode(HmsDownloadURL(sLink, &apos;Referer: &apos;+mpFilePath, true));
    HmsRegExMatch(&apos;(\\{.*\\})&apos;, sData, sData);
    if ((LeftCopy(sData, 1)!=&apos;[&apos;) &amp;&amp; (Pos(&apos;playlist&apos;, sData)&lt;1)) {
      sData = &apos;[&apos; + Trim(sData) + &apos;]&apos;;
  }
    CreateSeriesFromPlaylist(PodcastItem, sData);
    
  } else if (HmsRegExMatch(&apos;vkArr=(\\[.*?\\]);&apos;, sHtml, sVal)) {
    // Создаём ссылки на серии из плейлиста в переменной vkArr
    CreateSeriesFromPlaylist(PodcastItem, sVal);
    
  } else {
    
    CreateErrorItem(&apos;Опять изменения на сайте,надоели.&apos;);
    
  }
        
  // Если установлен ключ отображения информационных ссылок - добавляем их
  if (Pos(&apos;--addinfoitems&apos;, mpPodcastParameters)&gt;0) {
    if (Trim(PodcastItem[mpiYear      ])!=&apos;&apos;) CreateInfoItem(&apos;Год выхода&apos;, PodcastItem[mpiYear      ]);
    if (Trim(PodcastItem[mpiGenre     ])!=&apos;&apos;) CreateInfoItem(&apos;Жанр&apos;      , PodcastItem[mpiGenre     ]);
    if (Trim(PodcastItem[mpiCountry   ])!=&apos;&apos;) CreateInfoItem(&apos;Страна&apos;    , PodcastItem[mpiCountry   ]);
    if (Trim(PodcastItem[mpiTranslate ])!=&apos;&apos;) CreateInfoItem(&apos;Перевод&apos;   , PodcastItem[mpiTranslate ]);
    if (Trim(PodcastItem[mpiQuality   ])!=&apos;&apos;) CreateInfoItem(&apos;Качество&apos;  , PodcastItem[mpiQuality   ]);
    if (Trim(PodcastItem[mpiDirector  ])!=&apos;&apos;) CreateInfoItem(&apos;Режиссер&apos;  , PodcastItem[mpiDirector  ]);
    if (Trim(PodcastItem[mpiActor     ])!=&apos;&apos;) CreateInfoItem(&apos;В ролях&apos;   , PodcastItem[mpiActor     ]);
    if (Trim(PodcastItem[mpiIMDBInfo  ])!=&apos;&apos;) CreateInfoItem(&apos;IMDB&apos;      , PodcastItem[mpiIMDBInfo  ]);
    if (Trim(PodcastItem[mpiAuthor    ])!=&apos;&apos;) CreateInfoItem(&apos;Кинопоиск&apos; , PodcastItem[mpiAuthor    ]);
    if (Trim(PodcastItem[mpiConductor ])!=&apos;&apos;) CreateInfoItem(&apos;Бюджет&apos;    , PodcastItem[mpiConductor ]);
    if (Trim(PodcastItem[mpiTimeLength])!=&apos;&apos;) CreateInfoItem(&apos;Время&apos;     , PodcastItem[mpiTimeLength]);
    if (Trim(PodcastItem[mpiProducer  ])!=&apos;&apos;) CreateInfoItem(&apos;Продюссер&apos; , PodcastItem[mpiProducer  ]);
    if (Trim(PodcastItem[mpiAlbum     ])!=&apos;&apos;) CreateInfoItem(&apos;Выпущено&apos;  , PodcastItem[mpiAlbum     ]);
    if (Trim(PodcastItem[mpiMood      ])!=&apos;&apos;) CreateInfoItem(&apos;Описание&apos;  , PodcastItem[mpiMood      ]);
  }
  
}

///////////////////////////////////////////////////////////////////////////////
// Получение ссылки на медиаресурс в переменную MediaResourceLink
void GetLink() {
  if      (LeftCopy(mpFilePath, 4)==&apos;Info&apos;) ShowVideoInfo();
  else if (LeftCopy(mpFilePath, 3)==&apos;Err&apos; ) VideoMessage(gsPodcastName, mpTitle);
  else if (HmsRegExMatch(&apos;youtube&apos;, mpFilePath, &apos;&apos;)) GetLink_YouTube31(mpFilePath);
  else MediaResourceLink = mpFilePath;
}

///////////////////////////////////////////////////////////////////////////////
//                     Г Л А В Н А Я   П Р О Ц Е Д У Р А                     //
{
  // Проверяем, при каком событии было вызвано выполнение скрипта (не папка ли это)
  if (PodcastItem.IsFolder) {
    
    PodcastItem.DeleteChildItems();

    CreateLinks(); // Это зашли в папку подкаста (фильма) - создаём ссылки

  } else {
    
    GetLink(); // Это запустили фильм - получаем ссылку на медиа-поток
    
    // Если в MediaResourceLink пусто, значит получить ссылку не получилось - выводим видео об ошибке
    MediaResourceLink = &apos;-headers "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 OPR/58.0.3135.79 (Edition Campaign 34)" -i "&apos;+mpFilePath+&apos;"&apos;;  
  }

}</Value>
    </Property>
    <Property>
      <ID>551</ID>
      <Value>C++Script</Value>
    </Property>
    <Property>
      <ID>530</ID>
      <Value>string    gsUrlBase    = &apos;https://kino-live1.live&apos;;      // База для относительных ссылок
int       gnTotalItems = 0;                              // Счётчик созданных элементов
TDateTime gStart       = Now;                            // Время начала запуска скрипта
int gnMaxPages=10, gnMaxInGroup=100; bool gbYearInTitle=false; char gsGroupMode=&apos;&apos;;

// Регулярные выражения для поиска на странице блоков с информацией о видео
string
  gsPatternBlock  = &apos;&lt;h1&gt;(.*?)&lt;/div&gt;&apos;                       , // Искомые блоки
  gsCutPage       = &apos;&lt;fromCut&gt;(.*?)&lt;toCut&gt;&apos;                 , // Обрезка загруженной страницы
  gsPatternTitle  = &apos;(&lt;a.*?&lt;/a&gt;)&apos;                           , // Название
  gsPatternLink   = &apos;&lt;a href="(.*?)"&apos;                       , // Ссылка
  gsPatternImg    = &apos;&lt;img src="(.*?)"&apos;                      , // Картинка
  gsPatternYear   = &apos;shortinfo.*?&gt;(\\d{4})&lt;&apos;                , // Год
  gsPatternAudio  = &apos;&apos;                                      , // Озвучка / Перевод
  gsPatternPages  = &apos;.*/page/\\d+/"&gt;(\\d+)&apos;                 , // Регулярное выражение для поиска максимального номера страницы для дозагрузки
  gsPagesParams   = &apos;page/&lt;PN&gt;/&apos;                            , // Параметр с номером страницы, который добавляется к ссылке
  ;

///////////////////////////////////////////////////////////////////////////////
// Создание папки или подкаста
THmsScriptMediaItem CreateFolder(THmsScriptMediaItem ParentFolder, string sName, string sLink, string sImg=&apos;&apos;) {
  THmsScriptMediaItem Item = ParentFolder.AddFolder(sLink); // Создаём папку с указанной ссылкой
  Item[mpiTitle     ] = sName; // Присваиваем наименование
  Item[mpiThumbnail ] = sImg;  // Картинка
  Item[mpiCreateDate] = DateTimeToStr(IncTime(gStart, 0, -gnTotalItems, 0, 0)); // Для обратной сортировки по дате создания

  gnTotalItems++;             // Увеличиваем счетчик созданных элементов
  return Item;                // Возвращаем созданный объект
}

///////////////////////////////////////////////////////////////////////////////
// Получение имени группировки по имени видео (первая буква, "A..Z" или "#")
string GetGroupName(string sName) {
  string sGrp = &apos;#&apos;;
  if (HmsRegExMatch(&apos;([A-ZА-Я0-9])&apos;, sName, sGrp, 1, PCRE_CASELESS)) sGrp = UpperCase(sGrp);
  if (HmsRegExMatch(&apos;[A-Z]&apos;, sGrp, sGrp)) sGrp = &apos;A..Z&apos;;
  if (HmsRegExMatch(&apos;[0-9]&apos;, sGrp, sGrp)) sGrp = &apos;#&apos;;
  return sGrp;
}

///////////////////////////////////////////////////////////////////////////////
// Загрузка страниц и парсинг 
void LoadAndParse() {
  string sHtml, sData, sName, sLink, sImg, sYear, sPage, sVal, sPost, sServ; // Объявляем переменные
  THmsScriptMediaItem Item, Folder = FolderItem; TRegExpr RegEx;
  int i, n, nPages=0, iCnt=0, nGrp=0; char sGrp=""; bool bGroup=false;

  if (HmsRegExMatch(&apos;--maxingroup=(\\d+)&apos;, mpPodcastParameters, sVal)) gnMaxInGroup = StrToInt(sVal);
  if (HmsRegExMatch(&apos;--maxpages=(\\d+)&apos;  , mpPodcastParameters, sVal)) gnMaxPages   = StrToInt(sVal);
  HmsRegExMatch(&apos;--group=(\\w+)&apos;, mpPodcastParameters, gsGroupMode);
  gbYearInTitle = (Pos(&apos;--yearintitle&apos;, mpPodcastParameters)&gt;0); 

  if (LeftCopy(mpFilePath, 4) != "http") {
    // Если нет ссылки - делаем поиск названия
    if (Length(mpTitle)&lt;4) mpTitle += " :::";    // Фишка обхода ограничения на минимальную длину в 4 символа (двоеточие при самом поиске не учитывается)
    HmsRegExMatch(&apos;//(.*)&apos;, gsUrlBase, sServ); // получаем доменное имя из gsUrlBase в sServ
    sPost = &apos;do=search&amp;subaction=search&amp;search_start=1&amp;full_search=0&amp;result_from=1&amp;story=&apos;+HmsPercentEncode(HmsUtf8Encode(mpTitle));
    sHtml = HmsSendRequestEx(sServ, &apos;/index.php?do=search&apos;, &apos;POST&apos;,
                             &apos;application/x-www-form-urlencoded; Charset=UTF-8&apos;, 
                             gsUrlBase+&apos;/\r\nAccept-Encoding: gzip, deflate\r\nOrigin: &apos;+gsUrlBase, 
                             sPost, 80, 0, &apos;&apos;, true);
    gnMaxPages = 1;

  } else {
    // Иначе просто, загружаем страницу по ссылке
    sHtml = HmsDownloadURL(mpFilePath, &apos;Referer: &apos;+gsUrlBase, true);

  }
  sHtml = HmsUtf8Decode(sHtml);       // Декодируем страницу из UTF-8
  sHtml = HmsRemoveLineBreaks(sHtml); // Удаляем переносы строк, для облегчения работы с регулярными выражениями

  // Если указан шаблон поиска максимального номера страницы - применяем
  if ((gsPatternPages!=&apos;&apos;) &amp;&amp; HmsRegExMatch(gsPatternPages, sHtml, sVal)) nPages = StrToIntDef(sVal, 0);

  // Вырезаем только нужный участок текста HTML, где будем искать блоки.
  // Вместо &lt;fromCut&gt; и &lt;toCut&gt; вставляем начало и конец участка HTML, между которыми
  // будем искать блоки текста с сылкой, наименованием и проч.
  HmsRegExMatch(gsCutPage, sHtml, sHtml); // ищем в sHtml, результат кладём обратно в sHtml

  // =========================================================================
  // Дозагрузка страниц
  if ((gnMaxPages!=0) &amp;&amp; (nPages&gt;gnMaxPages)) nPages = gnMaxPages;
  for (i=2; i&lt;=nPages; i++) {
    HmsSetProgress(Trunc(i*100/nPages));
    HmsShowProgress(Format(&apos;%s: Загрузка страницы %d из %d&apos;, [mpTitle, i, nPages]));
    sLink = mpFilePath + ReplaceStr(gsPagesParams, &apos;&lt;PN&gt;&apos;, IntToStr(i));
    sPage = HmsDownloadURL(sLink, &apos;Referer: &apos;+gsUrlBase, true);
    sPage = HmsUtf8Decode(sPage);
    if (gsCutPage!=&apos;&apos;) HmsRegExMatch(gsCutPage, sPage, sPage);
    sHtml += sPage;
    if (HmsCancelPressed) break;
  }
  HmsHideProgress();                                                                                                   
  // =========================================================================
      
  // Создаём объект для поиска блоков текста по регулярному выражению,
  // в которых есть информация: ссылка, наименование, ссылка на картинку и проч.
  // Обычно, определяем начало и конец блока и вставляем их вместо &lt;section&gt; и &lt;/section&gt;
  RegEx = TRegExpr.Create(gsPatternBlock, PCRE_SINGLELINE);
  try {
    // Определяем, если блоков в загруженном более чем gnMaxInGroup, включаем группировку
    i=0; if (RegEx.Search(sHtml)) do i++; while (RegEx.SearchAgain());
    bGroup = (i &gt; gnMaxInGroup);
    // Главный цикл поиска блоков
    if (RegEx.Search(sHtml)) do {
      sLink=&apos;&apos;; sImg=&apos;&apos;; sYear=&apos;&apos;; sName=&apos;&apos;;
      HmsRegExMatch(gsPatternTitle, RegEx.Match, sName);
      HmsRegExMatch(gsPatternLink , RegEx.Match, sLink);
      HmsRegExMatch(gsPatternImg  , RegEx.Match, sImg );
      HmsRegExMatch(gsPatternYear , RegEx.Match, sYear);
      if (Trim(sLink)=="") continue;
    
      sName = ReplaceStr(HmsHtmlToText(sName), "/", "-");
      sLink = HmsExpandLink(sLink, gsUrlBase);

      if (sImg!=&apos;&apos;) sImg = HmsExpandLink(sImg, gsUrlBase);

      // Если в ссылках встречаются русские символы - делаем их безопасными
      if (HmsRegExMatch(&apos;^.*?([а-яА-Я].*)&apos;, sImg, sVal)) sImg = ReplaceStr(sImg, sVal, HmsPercentEncode(HmsUtf8Encode(sVal)));

      // Если указано добавлять год вназвание и в названии его нет, добавляем
      if (gbYearInTitle &amp;&amp; (sYear!=&apos;&apos;) &amp;&amp; (Pos(sYear, sName)&lt;1)) sName += &apos; (&apos;+sYear+&apos;)&apos;;

      // Контроль группировки (создаём папку с именем группы)
      if (gsGroupMode==&apos;alph&apos;) {
        Folder = FolderItem.AddFolder(GetGroupName(sName)); 
        Folder[mpiFolderSortOrder] = "mpTitle";
      } else if (gsGroupMode==&apos;year&apos;) {
        Folder = FolderItem.AddFolder(sYear); 
        Folder[mpiFolderSortOrder] = "mpTitle";
        Folder[mpiYear           ] = sYear;
      } else if (bGroup) {
        iCnt++; if (iCnt&gt;=gnMaxInGroup) { nGrp++; iCnt=0; }
        Folder = FolderItem.AddFolder(Format(&apos;%.2d&apos;, [nGrp])); 
      }

      CreateFolder(Folder, sName, sLink, sImg); // Создание ссылки (папки с фильмом)

    } while (RegEx.SearchAgain);
  } finally { RegEx.Free(); }
  if      (gsGroupMode==&apos;alph&apos;) FolderItem.Sort(&apos;mpTitle&apos;);
  else if (gsGroupMode==&apos;year&apos;) FolderItem.Sort(&apos;-mpYear&apos;);

  HmsLogMessage(1, mpTitle+&apos;: создано элементов - &apos;+IntToStr(gnTotalItems));
}

///////////////////////////////////////////////////////////////////////////////
//                    Г Л А В Н А Я    П Р О Ц Е Д У Р А                     //
{
  FolderItem.DeleteChildItems(); // Удаляем созданные ранее элементы в текущей папке
  LoadAndParse();                // Запускаем загрузку страниц и создание папок видео
}
</Value>
    </Property>
    <Property>
      <ID>531</ID>
      <Value>C++Script</Value>
    </Property>
    <Property>
      <ID>571</ID>
      <Value>char gsUrlBase="https://kino-live1.live"; int gnTotalItems=0; TDateTime gTimeStart=Now;

///////////////////////  Создание структуры подкаста  ///////////////////////// 

///////////////////////////////////////////////////////////////////////////////
// Функция создания динамической папки с указанным скриптом
THmsScriptMediaItem CreateDynamicItem(THmsScriptMediaItem prntItem, char sTitle, char sLink, char &amp;sScript=&apos;&apos;) {                                
  THmsScriptMediaItem Folder = prntItem.AddFolder(sLink, false, 32);
  Folder[mpiTitle     ] = sTitle;
  Folder[mpiCreateDate] = VarToStr(IncTime(Now,0,-prntItem.ChildCount,0,0));
  Folder[200] = 5;           // mpiFolderType
  Folder[500] = sScript;     // mpiDynamicScript
  Folder[501] = &apos;C++Script&apos;; // mpiDynamicSyntaxType
  Folder[mpiFolderSortOrder] = -mpiCreateDate;
  return Folder;
}

///////////////////////////////////////////////////////////////////////////////
// Замена в тексте загруженного скрипта значения текстовой переменной
void ReplaceVarValue(char &amp;sText, char sVarName, char sNewVal) {
  char sVal, sVal2;
  if (HmsRegExMatch2("("+sVarName+"\\s*?=.*?&apos;;)", sText, sVal, sVal2)) {
     HmsRegExMatch(sVarName+"\\s*?=\\s*?&apos;(.*)&apos;", sVal, sVal2); 
     sText = ReplaceStr(sText, sVal, ReplaceStr(sVal , sVal2, sNewVal));
  }
}

///////////////////////////////////////////////////////////////////////////////
// Создание папки ПОИСК (с загрузкой скрипта с форума homemediaserver.ru)
void CreateSearchFolder(THmsScriptMediaItem prntItem, char sTitle) {
  char sScript=&apos;&apos;, sLink, sHtml, sRE, sVal; THmsScriptMediaItem Folder;
  
  // Да да, загружаем скрипт с сайта форума HMS
  sHtml = HmsUtf8Decode(HmsDownloadURL(&apos;http://homemediaserver.ru/forum/viewtopic.php?f=15&amp;t=2793&amp;p=17395#p17395&apos;, &apos;&apos;, true));
  HmsRegExMatch(&apos;BeginDynamicSearchScript\\*/(.*?)/\\*EndDynamicSearchScript&apos;, sHtml, sScript, 1, PCRE_SINGLELINE);
  sScript = HmsHtmlToText(sScript, 1251);
  sScript = ReplaceStr(sScript, #160, &apos; &apos;);

  // И меняем значения переменных на свои
  ReplaceVarValue(sScript, &apos;gsSuggestQuery&apos;  , &apos;https://kino-live1.live&apos;);
  ReplaceVarValue(sScript, &apos;gsSuggestRegExpr&apos;, &apos;&lt;span class="searchheading"&gt;(.*?)&lt;/span&gt;&apos;);
  ReplaceVarValue(sScript, &apos;gsSuggestMethod&apos; , &apos;POST&apos;);
  sScript = ReplaceStr(sScript, &apos;gnSuggestNoUTFEnc = 0&apos;, &apos;gnSuggestNoUTFEnc = 1&apos;);
  
  Folder = prntItem.AddFolder(sTitle, true);
  Folder[mpiCreateDate     ] = VarToStr(IncTime(gTimeStart,0,-gnTotalItems,0,0));
  Folder[mpiFolderSortOrder] = "-mpCreateDate";
  gnTotalItems++;
  
  CreateDynamicItem(Folder, &apos;"Набрать текст"&apos;, &apos;-SearchCommands&apos;, sScript);
}

///////////////////////////////////////////////////////////////////////////////
// Создание подкаста или папки
THmsScriptMediaItem CreateItem(THmsScriptMediaItem Parent, char sTitle=&apos;&apos;, char sLink=&apos;&apos;) {
  THmsScriptMediaItem Item; bool bForceFolder = false;

  if (sLink==&apos;&apos;) { sLink = sTitle; bForceFolder = true; }
  else             sLink = HmsExpandLink(sLink, gsUrlBase);
  
  Item = Parent.AddFolder(sLink, bForceFolder);
  Item[mpiTitle     ] = sTitle;
  Item[mpiCreateDate] = VarToStr(IncTime(gTimeStart,0,-gnTotalItems,0,0));
  Item[mpiFolderSortOrder] = -mpiCreateDate;
  gnTotalItems++;
  return Item;
}

///////////////////////////////////////////////////////////////////////////////
// ---------------------  M A I N  P R O C E D U R E  -------------------------
{
  THmsScriptMediaItem Folder, Item;

  FolderItem.DeleteChildItems();

  CreateSearchFolder (FolderItem, &apos;01. Поиск&apos;);
    
  Folder = CreateItem(FolderItem, &apos;02. Категории&apos;);
    CreateItem(Folder, &apos;Боевики&apos;     , "/boevyki-onlajn/");
    CreateItem(Folder, &apos;Комедии&apos;     , "/komedyy-onlajn/");
    CreateItem(Folder, &apos;Семейные&apos;    , "/semeinoe-kino/");
    CreateItem(Folder, &apos;Фантастика&apos;  , "/fantastyka-onlajn/");
    CreateItem(Folder, &apos;Приключения&apos; , "/pryklyuchenyya-online/");
    CreateItem(Folder, &apos;Исторические&apos;, "/istorycheskye-online/");
    CreateItem(Folder, &apos;Мелодрама&apos;   , "/melodramy-onlajn/");
    CreateItem(Folder, &apos;Детективы&apos;   , "/detektivyi-onlajn/");
    CreateItem(Folder, &apos;Триллеры&apos;    , "/triller-online/");
    CreateItem(Folder, &apos;Криминал&apos;    , "/kriminal/");
    CreateItem(Folder, &apos;Про войну&apos;   , "/pro-voinu/");
    CreateItem(Folder, &apos;Фэнтези&apos;     , "/fentezi-online/");
    CreateItem(Folder, &apos;Драма&apos;       , "/dramyi-online/");
    CreateItem(Folder, &apos;Про спорт&apos;   , "/pro-sport-onlajn/");
    CreateItem(Folder, &apos;Ужасы&apos;       , "/uzhasy-onlajn/");
    CreateItem(Folder, &apos;Аниме&apos;       , "/anime/");
    Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  
  Folder = CreateItem(FolderItem, &apos;03. Сериалы&apos;);
    CreateItem(Folder, &apos;Русские сериалы&apos;       , "/seryalyi-onlajn/russkie-serialy/");
    CreateItem(Folder, &apos;Зарубежные сериалы&apos;    , "/seryalyi-onlajn/zarubezhnye-serialy/");
    Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  
  Folder = CreateItem(FolderItem, &apos;04. Трейлеры&apos;        , &apos;/trailer/&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  Folder = CreateItem(FolderItem, &apos;05. Эротика&apos;         , &apos;/erotika-online//&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  Folder = CreateItem(FolderItem, &apos;06. Мультфильмы&apos;     , &apos;/multiki-onlajn/&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  Folder = CreateItem(FolderItem, &apos;07. Мультсериалы&apos;    , &apos;/multseryaly-onlain/&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  Folder = CreateItem(FolderItem, &apos;08. Телешоу&apos;         , &apos;/teleshou-onlain/&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  Folder = CreateItem(FolderItem, &apos;09. Клипы и концерты&apos;, &apos;/clips/&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  Folder = CreateItem(FolderItem, &apos;10. Квн&apos;             , &apos;/kvn-online/&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  Folder = CreateItem(FolderItem, &apos;11. Документальные&apos;  , &apos;/dokumentalnyie-onlajn/&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  Folder = CreateItem(FolderItem, &apos;12. Камеди клаб&apos;     , &apos;/kamedy-klab-online/&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  Folder = CreateItem(FolderItem, &apos;13. Для детей&apos;       , &apos;/filmy-dlia-detei/&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  Folder = CreateItem(FolderItem, &apos;14. HD качество&apos;     , &apos;/hd/&apos;);
  Folder[mpiPodcastParameters] = &apos;--group=alph&apos;;
  
  Folder = CreateItem(FolderItem, &apos;15. TV Онлайн&apos;);
    CreateItem(Folder, &apos;Общетематические&apos; , "/tv-online/obshchetematicheskie/");
    CreateItem(Folder, &apos;Кино&apos;             , "/tv-online/kino/");
    CreateItem(Folder, &apos;Детские&apos;          , "/tv-online/detskie/");
    CreateItem(Folder, &apos;Музыкальные&apos;      , "/tv-online/muzyka/");
    CreateItem(Folder, &apos;Спортивные&apos;       , "/tv-online/sporttv/");
    CreateItem(Folder, &apos;Познавательные&apos;   , "/tv-online/poznavatelnye/");
    
  HmsLogMessage(1, mpTitle+&apos;: Создано ссылок - &apos;+IntToStr(gnTotalItems));
}</Value>
    </Property>
    <Property>
      <ID>572</ID>
      <Value>C++Script</Value>
    </Property>
  </Properties>
  <ChildItems>
    <Item>
      <ClassID>51</ClassID>
      <ItemID>b33570ae81c569650d37be7f6cdf05e0</ItemID>
      <ItemPath>01. Поиск</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>1</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4993055556</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-mpCreateDate</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
        <Property>
          <ID>701</ID>
          <Value>-1</Value>
        </Property>
        <Property>
          <ID>702</ID>
          <Value>-1</Value>
        </Property>
        <Property>
          <ID>517</ID>
          <Value>578-720,722-1080,482-576,402-480,322-400,202-320,0-200</Value>
        </Property>
        <Property>
          <ID>518</ID>
          <Value>0</Value>
        </Property>
        <Property>
          <ID>530</ID>
          <Value>string    gsUrlBase    = &apos;https://kino-live1.live&apos;;      // База для относительных ссылок
int       gnTotalItems = 0;                              // Счётчик созданных элементов
TDateTime gStart       = Now;                            // Время начала запуска скрипта
int gnMaxPages=10, gnMaxInGroup=100; bool gbYearInTitle=false; char gsGroupMode=&apos;&apos;;

// Регулярные выражения для поиска на странице блоков с информацией о видео
string
  gsPatternBlock  = &apos;"more"(.*?)&lt;/div&gt;&lt;/div&gt;&apos;               , // Искомые блоки
  gsCutPage       = &apos;&lt;fromCut&gt;(.*?)&lt;toCut&gt;&apos;                 , // Обрезка загруженной страницы
  gsPatternTitle  = &apos;&lt;h1&gt;(.*?)&lt;/h1&gt;&apos;                        , // Название
  gsPatternLink   = &apos;&lt;a href="(.*?)"&apos;                       , // Ссылка
  gsPatternImg    = &apos;&lt;img src="(.*?)"&apos;                      , // Картинка
  gsPatternYear   = &apos;shortinfo.*?&gt;(\\d{4})&lt;&apos;                , // Год
  gsPatternAudio  = &apos;&apos;                                      , // Озвучка / Перевод
  gsPatternPages  = &apos;.*/page/\\d+/"&gt;(\\d+)&apos;                 , // Регулярное выражение для поиска максимального номера страницы для дозагрузки
  gsPagesParams   = &apos;page/&lt;PN&gt;/&apos;                            , // Параметр с номером страницы, который добавляется к ссылке
  ;

///////////////////////////////////////////////////////////////////////////////
// Создание папки или подкаста
THmsScriptMediaItem CreateFolder(THmsScriptMediaItem ParentFolder, string sName, string sLink, string sImg=&apos;&apos;) {
  THmsScriptMediaItem Item = ParentFolder.AddFolder(sLink); // Создаём папку с указанной ссылкой
  Item[mpiTitle     ] = sName; // Присваиваем наименование
  Item[mpiThumbnail ] = sImg;  // Картинка
  Item[mpiCreateDate] = DateTimeToStr(IncTime(gStart, 0, -gnTotalItems, 0, 0)); // Для обратной сортировки по дате создания

  gnTotalItems++;             // Увеличиваем счетчик созданных элементов
  return Item;                // Возвращаем созданный объект
}

///////////////////////////////////////////////////////////////////////////////
// Получение имени группировки по имени видео (первая буква, "A..Z" или "#")
string GetGroupName(string sName) {
  string sGrp = &apos;#&apos;;
  if (HmsRegExMatch(&apos;([A-ZА-Я0-9])&apos;, sName, sGrp, 1, PCRE_CASELESS)) sGrp = UpperCase(sGrp);
  if (HmsRegExMatch(&apos;[A-Z]&apos;, sGrp, sGrp)) sGrp = &apos;A..Z&apos;;
  if (HmsRegExMatch(&apos;[0-9]&apos;, sGrp, sGrp)) sGrp = &apos;#&apos;;
  return sGrp;
}

///////////////////////////////////////////////////////////////////////////////
// Загрузка страниц и парсинг 
void LoadAndParse() {
  string sHtml, sData, sName, sLink, sImg, sYear, sPage, sVal, sPost, sServ; // Объявляем переменные
  THmsScriptMediaItem Item, Folder = FolderItem; TRegExpr RegEx;
  int i, n, nPages=0, iCnt=0, nGrp=0; char sGrp=""; bool bGroup=false;

  if (HmsRegExMatch(&apos;--maxingroup=(\\d+)&apos;, mpPodcastParameters, sVal)) gnMaxInGroup = StrToInt(sVal);
  if (HmsRegExMatch(&apos;--maxpages=(\\d+)&apos;  , mpPodcastParameters, sVal)) gnMaxPages   = StrToInt(sVal);
  HmsRegExMatch(&apos;--group=(\\w+)&apos;, mpPodcastParameters, gsGroupMode);
  gbYearInTitle = (Pos(&apos;--yearintitle&apos;, mpPodcastParameters)&gt;0); 

  if (LeftCopy(mpFilePath, 4) != "http") {
    // Если нет ссылки - делаем поиск названия
    if (Length(mpTitle)&lt;4) mpTitle += " :::";    // Фишка обхода ограничения на минимальную длину в 4 символа (двоеточие при самом поиске не учитывается)
    HmsRegExMatch(&apos;//(.*)&apos;, gsUrlBase, sServ); // получаем доменное имя из gsUrlBase в sServ
    sPost = &apos;do=search&amp;subaction=search&amp;search_start=1&amp;full_search=0&amp;result_from=1&amp;story=&apos;+HmsPercentDecode(HmsUtf8Decode(mpTitle));
    sHtml = HmsSendRequestEx(sServ, &apos;/index.php?do=search&apos;, &apos;POST&apos;,
                             &apos;application/x-www-form-urlencoded; Charset=UTF-8&apos;, 
                             gsUrlBase+&apos;/\r\nAccept-Encoding: gzip, deflate\r\nOrigin: &apos;+gsUrlBase, 
                             sPost, 80, 0, &apos;&apos;, true);
    gnMaxPages = 1;

  } else {
    // Иначе просто, загружаем страницу по ссылке
    sHtml = HmsDownloadURL(mpFilePath, &apos;Referer: &apos;+gsUrlBase, true);

  }
  sHtml = HmsUtf8Decode(sHtml);       // Декодируем страницу из UTF-8
  sHtml = HmsRemoveLineBreaks(sHtml); // Удаляем переносы строк, для облегчения работы с регулярными выражениями

  // Если указан шаблон поиска максимального номера страницы - применяем
  if ((gsPatternPages!=&apos;&apos;) &amp;&amp; HmsRegExMatch(gsPatternPages, sHtml, sVal)) nPages = StrToIntDef(sVal, 0);

  // Вырезаем только нужный участок текста HTML, где будем искать блоки.
  // Вместо &lt;fromCut&gt; и &lt;toCut&gt; вставляем начало и конец участка HTML, между которыми
  // будем искать блоки текста с сылкой, наименованием и проч.
  HmsRegExMatch(gsCutPage, sHtml, sHtml); // ищем в sHtml, результат кладём обратно в sHtml

  // =========================================================================
  // Дозагрузка страниц
  if ((gnMaxPages!=0) &amp;&amp; (nPages&gt;gnMaxPages)) nPages = gnMaxPages;
  for (i=2; i&lt;=nPages; i++) {
    HmsSetProgress(Trunc(i*100/nPages));
    HmsShowProgress(Format(&apos;%s: Загрузка страницы %d из %d&apos;, [mpTitle, i, nPages]));
    sLink = mpFilePath + ReplaceStr(gsPagesParams, &apos;&lt;PN&gt;&apos;, IntToStr(i));
    sPage = HmsDownloadURL(sLink, &apos;Referer: &apos;+gsUrlBase, true);
    sPage = HmsUtf8Decode(sPage);
    if (gsCutPage!=&apos;&apos;) HmsRegExMatch(gsCutPage, sPage, sPage);
    sHtml += sPage;
    if (HmsCancelPressed) break;
  }
  HmsHideProgress();                                                                                                   
  // =========================================================================
      
  // Создаём объект для поиска блоков текста по регулярному выражению,
  // в которых есть информация: ссылка, наименование, ссылка на картинку и проч.
  // Обычно, определяем начало и конец блока и вставляем их вместо &lt;section&gt; и &lt;/section&gt;
  RegEx = TRegExpr.Create(gsPatternBlock, PCRE_SINGLELINE);
  try {
    // Определяем, если блоков в загруженном более чем gnMaxInGroup, включаем группировку
    i=0; if (RegEx.Search(sHtml)) do i++; while (RegEx.SearchAgain());
    bGroup = (i &gt; gnMaxInGroup);
    // Главный цикл поиска блоков
    if (RegEx.Search(sHtml)) do {
      sLink=&apos;&apos;; sImg=&apos;&apos;; sYear=&apos;&apos;; sName=&apos;&apos;;
      HmsRegExMatch(gsPatternTitle, RegEx.Match, sName);
      HmsRegExMatch(gsPatternLink , RegEx.Match, sLink);
      HmsRegExMatch(gsPatternImg  , RegEx.Match, sImg );
      HmsRegExMatch(gsPatternYear , RegEx.Match, sYear);
      if (Trim(sLink)=="") continue;
    
      sName = ReplaceStr(HmsHtmlToText(sName), "/", "-");
      sLink = HmsExpandLink(sLink, gsUrlBase);

      if (sImg!=&apos;&apos;) sImg = HmsExpandLink(sImg, gsUrlBase);

      // Если в ссылках встречаются русские символы - делаем их безопасными
      if (HmsRegExMatch(&apos;^.*?([а-яА-Я].*)&apos;, sImg, sVal)) sImg = ReplaceStr(sImg, sVal, HmsPercentEncode(HmsUtf8Encode(sVal)));

      // Если указано добавлять год вназвание и в названии его нет, добавляем
      if (gbYearInTitle &amp;&amp; (sYear!=&apos;&apos;) &amp;&amp; (Pos(sYear, sName)&lt;1)) sName += &apos; (&apos;+sYear+&apos;)&apos;;

      // Контроль группировки (создаём папку с именем группы)
      if (gsGroupMode==&apos;alph&apos;) {
        Folder = FolderItem.AddFolder(GetGroupName(sName)); 
        Folder[mpiFolderSortOrder] = "mpTitle";
      } else if (gsGroupMode==&apos;year&apos;) {
        Folder = FolderItem.AddFolder(sYear); 
        Folder[mpiFolderSortOrder] = "mpTitle";
        Folder[mpiYear           ] = sYear;
      } else if (bGroup) {
        iCnt++; if (iCnt&gt;=gnMaxInGroup) { nGrp++; iCnt=0; }
        Folder = FolderItem.AddFolder(Format(&apos;%.2d&apos;, [nGrp])); 
      }

      CreateFolder(Folder, sName, sLink, sImg); // Создание ссылки (папки с фильмом)

    } while (RegEx.SearchAgain);
  } finally { RegEx.Free(); }
  if      (gsGroupMode==&apos;alph&apos;) FolderItem.Sort(&apos;mpTitle&apos;);
  else if (gsGroupMode==&apos;year&apos;) FolderItem.Sort(&apos;-mpYear&apos;);

  HmsLogMessage(1, mpTitle+&apos;: создано элементов - &apos;+IntToStr(gnTotalItems));
}

///////////////////////////////////////////////////////////////////////////////
//                    Г Л А В Н А Я    П Р О Ц Е Д У Р А                     //
{
  FolderItem.DeleteChildItems(); // Удаляем созданные ранее элементы в текущей папке
  LoadAndParse();                // Запускаем загрузку страниц и создание папок видео
}
</Value>
        </Property>
        <Property>
          <ID>531</ID>
          <Value>C++Script</Value>
        </Property>
        <Property>
          <ID>522</ID>
          <Value>0</Value>
        </Property>
        <Property>
          <ID>570</ID>
          <Value>0</Value>
        </Property>
        <Property>
          <ID>245</ID>
          <Value>b33570ae81c569650d37be7f6cdf05e0</Value>
        </Property>
      </Properties>
      <ChildItems>
        <Item>
          <ClassID>32</ClassID>
          <ItemID>419642e8905c5ebcfd67d83b5386612d</ItemID>
          <ItemPath>-SearchCommands</ItemPath>
          <ParentID>b33570ae81c569650d37be7f6cdf05e0</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>"Набрать текст"</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4986111111</Value>
            </Property>
            <Property>
              <ID>200</ID>
              <Value>5</Value>
            </Property>
            <Property>
              <ID>501</ID>
              <Value>C++Script</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
      </ChildItems>
    </Item>
    <Item>
      <ClassID>51</ClassID>
      <ItemID>93700c5cef36be022003fa5a2c8da675</ItemID>
      <ItemPath>02. Категории</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4986111111</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
      <ChildItems>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>ef8dea15a3fe86d925c728274c1ca0e2</ItemID>
          <ItemPath>https://kino-live1.live/boevyki-onlajn/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Боевики</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4979166667</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
            <Property>
              <ID>525</ID>
              <Value>43542,5020494329</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>788a0a9b762c3b75fcc9e2a499bd1312</ItemID>
          <ItemPath>https://kino-live1.live/komedyy-onlajn/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Комедии</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4972222222</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>ec01ef31dc3fab38e479b0892f1aaa5d</ItemID>
          <ItemPath>https://kino-live1.live/semeinoe-kino/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Семейные</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4965277778</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>966df5fcb2cf3815bfcadcf51f7e2254</ItemID>
          <ItemPath>https://kino-live1.live/fantastyka-onlajn/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Фантастика</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4958333333</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>2a7599252c77c708b2ac8a79e41292a1</ItemID>
          <ItemPath>https://kino-live1.live/pryklyuchenyya-online/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Приключения</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4951388889</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>556ad747db09c821944b4ef2f9528429</ItemID>
          <ItemPath>https://kino-live1.live/istorycheskye-online/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Исторические</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4944444444</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>521dd1dde8460a3591bb5df8f048f159</ItemID>
          <ItemPath>https://kino-live1.live/melodramy-onlajn/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Мелодрама</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,49375</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>091bfdb2e834c7d0bb81038c0d37c098</ItemID>
          <ItemPath>https://kino-live1.live/detektivyi-onlajn/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Детективы</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4930555556</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>f4c2cf5426ca6913cafc821c441cd8ff</ItemID>
          <ItemPath>https://kino-live1.live/triller-online/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Триллеры</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4923611111</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>c1de663f8f4b47f05aa06d2f43147ffb</ItemID>
          <ItemPath>https://kino-live1.live/kriminal/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Криминал</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4916666667</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>85cf61f7ee9c1e87bc3a5b63497ccb4a</ItemID>
          <ItemPath>https://kino-live1.live/pro-voinu/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Про войну</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4909722222</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>c1834b412dbf578e8c5b4dc2741759d3</ItemID>
          <ItemPath>https://kino-live1.live/fentezi-online/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Фэнтези</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4902777778</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>16e84c61f4a50b0fe301c3fc3525423f</ItemID>
          <ItemPath>https://kino-live1.live/dramyi-online/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Драма</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4895833333</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>71b2f28260d07aa2ee25f8cdbd20c492</ItemID>
          <ItemPath>https://kino-live1.live/pro-sport-onlajn/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Про спорт</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4888888889</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>e2d479b8f7b29ce8627d16940bfb9075</ItemID>
          <ItemPath>https://kino-live1.live/uzhasy-onlajn/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Ужасы</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4881944444</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>6424281ca5759c3819cf1ec3c25750ec</ItemID>
          <ItemPath>https://kino-live1.live/anime/</ItemPath>
          <ParentID>93700c5cef36be022003fa5a2c8da675</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Аниме</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4875</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
      </ChildItems>
    </Item>
    <Item>
      <ClassID>51</ClassID>
      <ItemID>95743b9600f6ccbab40d3019e10680d2</ItemID>
      <ItemPath>03. Сериалы</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4868055556</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
      <ChildItems>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>310f5138cdecf400467626889f5337c8</ItemID>
          <ItemPath>https://kino-live1.live/seryalyi-onlajn/russkie-serialy/</ItemPath>
          <ParentID>95743b9600f6ccbab40d3019e10680d2</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Русские сериалы</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4861111111</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>355a97aece48da6a9889f64d4d55aff3</ItemID>
          <ItemPath>https://kino-live1.live/seryalyi-onlajn/zarubezhnye-serialy/</ItemPath>
          <ParentID>95743b9600f6ccbab40d3019e10680d2</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Зарубежные сериалы</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4854166667</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
      </ChildItems>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>d331cd533c8f20c7439f38b2c620a8b8</ItemID>
      <ItemPath>https://kino-live1.live/trailer/</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>04. Трейлеры</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4847222222</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>b47da4228941a6adef9e99c9477affd7</ItemID>
      <ItemPath>https://kino-live1.live/erotika-online//</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>05. Эротика</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4840277778</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>15fe3b39544f900c794f2988a9d6242e</ItemID>
      <ItemPath>https://kino-live1.live/multiki-onlajn/</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>06. Мультфильмы</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4833333333</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>4039b1aa0179a8f397fa0ad39814f923</ItemID>
      <ItemPath>https://kino-live1.live/multseryaly-onlain/</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>07. Мультсериалы</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4826388889</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>102da32febc6be341dfef65da3446c72</ItemID>
      <ItemPath>https://kino-live1.live/teleshou-onlain/</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>08. Телешоу</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4819444444</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>5b3a6b77b7d6d1bff3f3a4bc6be0859b</ItemID>
      <ItemPath>https://kino-live1.live/clips/</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>09. Клипы и концерты</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,48125</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>12b6ca81eee4dac4badefa600d577d7f</ItemID>
      <ItemPath>https://kino-live1.live/kvn-online/</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>10. Квн</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4805555556</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>08aa7073646461dc7867b93fac2eb867</ItemID>
      <ItemPath>https://kino-live1.live/dokumentalnyie-onlajn/</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>11. Документальные</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4798611111</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>577d13f2698b7c183cab9223dca72933</ItemID>
      <ItemPath>https://kino-live1.live/kamedy-klab-online/</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>12. Камеди клаб</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4791666667</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>aff8f1a0f6f72476b5a14df2a6985c6c</ItemID>
      <ItemPath>https://kino-live1.live/filmy-dlia-detei/</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>13. Для детей</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4784722222</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>53</ClassID>
      <ItemID>676bbf51ee1b95c8f6142e72c815701f</ItemID>
      <ItemPath>https://kino-live1.live/hd/</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>4</ID>
          <Value>14. HD качество</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4777777778</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>527</ID>
          <Value>--group=alph</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
    </Item>
    <Item>
      <ClassID>51</ClassID>
      <ItemID>3a117261a5b26f3174d27f8d8be08898</ItemID>
      <ItemPath>15. TV Онлайн</ItemPath>
      <ParentID>a7559d80-fdb3-4221-91b1-c0b5c81ae64e</ParentID>
      <Properties>
        <Property>
          <ID>515</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>512</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>532</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>700</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>553</ID>
          <Value>2</Value>
        </Property>
        <Property>
          <ID>42</ID>
          <Value>3</Value>
        </Property>
        <Property>
          <ID>35</ID>
          <Value>43542,4770833333</Value>
        </Property>
        <Property>
          <ID>215</ID>
          <Value>-35</Value>
        </Property>
        <Property>
          <ID>93</ID>
          <Value>43542,4993120486</Value>
        </Property>
      </Properties>
      <ChildItems>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>7ee891d04e42a347ddbf2fab966526ca</ItemID>
          <ItemPath>https://kino-live1.live/tv-online/obshchetematicheskie/</ItemPath>
          <ParentID>3a117261a5b26f3174d27f8d8be08898</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Общетематические</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4763888889</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>3c64285461896146ece8e72b6ac3573a</ItemID>
          <ItemPath>https://kino-live1.live/tv-online/kino/</ItemPath>
          <ParentID>3a117261a5b26f3174d27f8d8be08898</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Кино</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4756944444</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>bfdef53165672136387cee438b0f465a</ItemID>
          <ItemPath>https://kino-live1.live/tv-online/detskie/</ItemPath>
          <ParentID>3a117261a5b26f3174d27f8d8be08898</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Детские</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,475</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>4a68bd94b69e17252fa1c36aa52479c6</ItemID>
          <ItemPath>https://kino-live1.live/tv-online/muzyka/</ItemPath>
          <ParentID>3a117261a5b26f3174d27f8d8be08898</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Музыкальные</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4743055556</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>7d385046755df14445ecbf9a65e9f780</ItemID>
          <ItemPath>https://kino-live1.live/tv-online/sporttv/</ItemPath>
          <ParentID>3a117261a5b26f3174d27f8d8be08898</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Спортивные</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4736111111</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
        <Item>
          <ClassID>53</ClassID>
          <ItemID>1e2183eec65c42748113ec325f0026db</ItemID>
          <ItemPath>https://kino-live1.live/tv-online/poznavatelnye/</ItemPath>
          <ParentID>3a117261a5b26f3174d27f8d8be08898</ParentID>
          <Properties>
            <Property>
              <ID>515</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>512</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>532</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>700</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>553</ID>
              <Value>2</Value>
            </Property>
            <Property>
              <ID>42</ID>
              <Value>3</Value>
            </Property>
            <Property>
              <ID>4</ID>
              <Value>Познавательные</Value>
            </Property>
            <Property>
              <ID>35</ID>
              <Value>43542,4729166667</Value>
            </Property>
            <Property>
              <ID>215</ID>
              <Value>-35</Value>
            </Property>
            <Property>
              <ID>93</ID>
              <Value>43542,4993120486</Value>
            </Property>
          </Properties>
        </Item>
      </ChildItems>
    </Item>
  </ChildItems>
</HmsMediaItem>
