Ежедневный экспорт таблицы обезличенных сделок в СУБД
Пользователь
Сообщений: Регистрация: 23.06.2019
23.03.2021 15:40:23
Коллеги, приглашаем воспользоваться новой интеграцией СУБД Axibase с терминалом QUIK для архивирования таблицы обезличенных сделок.
Интеграция проверена эксплуатацией с QUIK 8.2+ в течение 1 года с сохранением 35-40 млн сделок в день.
Для справки, количество сделок во всех режимах на МосБирже 22.03.2021 составило 4024356.
Если возникнут вопросы - пишите в теме или в ЛС.
Экспорт alltrades (обезличенных сделок) в нереляционную СУБД с SQL
Пользователь
Сообщений: Регистрация: 23.06.2019
22.03.2021 20:58:37
Коллеги, приглашаем к использованию новой интеграции СУБД Axibase с терминалом QUIK.
Интеграция проверена эксплуатацией в течение 1 года с сохранением 35-40 млн сделок в день. QUIK 8.2+
Рекомендуем в начале настроить ежедневную выгрузку скриптом export_alltrades.lua После этого включить ODBC драйвер. Комбинация обоих механизмов позволяет практически исключить пробелы в истории сделок.
Практическое применение - backtesting, оптимизация алгоритов в части выставления заявок.
Использование СУБД бесплатное. Будем признательны за обратную связь. На хорошие вопросы постараюсь отвечать в течение дня.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
12.03.2021 20:36:39
12 марта 2021 произошел интересный момент, когда в 13.34:16 МСК цена TRMK превысила верхнее значение ценового диапазона, установленного в предыдущий день. Проверка лимитов в НКК подтвердила внеочередное обновление риск-параметров в течение торгового дня, за минуту до превышения порога.
Нужно учитывать возможность внутридневного сдвига порогов в торговых стратегиях.
Автоматизировал ежедневную загрузку порогов из НКЦ. За вычетом режимов РПС получается 2734 инструмента (акции, облигации, фонды).
Теперь могу их надежно использовать в Квике, производя сверку порогов Квика с НКЦ, и исправляя нули при необходимости. Единственный момент - это риск изменения порогов со стороны НКЦ в течение торгового дня. Но при этом также неизвестно, будет ли своевременно обновлен сам Квик. Если интересен путь к ежедневным csv файлами порогами (фонд + валюта) на веб сервере, пишите в личку.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
18.02.2021 00:51:27
Crawler на Java для ценовых ограничений на ФР: Всего 51800 строк. Возможно имеет смысл поставить в крон и выкладывать на сервер, чтобы НЦЦ не забанил.
Код
# request date 18.02.2021 : current time 18.02.2021 21:49:34 MSK
security,asset_1,asset_2,board,settlementDate,maxPrice,minPrice,changeDate
AAL-RM,AAL-RM,SUR,FQBR,20.02.2021,1850,792,17.02.2021 19:41:54ююю
ZVEZ,ZVEZ,SUR,PTEQ,01.03.2021,6.175,2.65,17.02.2021 19:41:54
ZVEZ,ZVEZ,SUR,SMAL,20.02.2021,6.175,2.65,17.02.2021 19:41:54
ZVEZ,ZVEZ,SUR,TQBR,20.02.2021,6.175,2.65,17.02.2021 19:41:54
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
17.02.2021 18:05:16
Ответ на запрос в ЦБ касательно опубликования параметров биржей - отрицательный, но полезный! ЦБ помог со ссылкой.
Цитата
Департамент инфраструктуры финансового рынка рассмотрел Ваше обращение No ОЭ-10978 от 26.01.2021 и сообщает следующее. Требования к составу, порядку и срокам раскрытия (предоставления) информации организаторами торговли установлены Положением Банка России от 17.10.2014 No 437-П «О деятельности по проведению организованных торгов» (далее – Положение). Перечень информации, подлежащей раскрытию на сайте, предоставлению в Банк России и участникам торгов, а также сроки ее предоставления и раскрытия определены в Приложении 4 к Положению. В соответствии с п. 1.2 Приложения 4 к Положению организатор торговли обязан предоставить текущую информацию о договорах, заключенных на торгах у организатора торговли в течение данного торгового дня, в том числе: наименование, вид, категорию (тип) и иные релевантные параметры торгуемого инструмента; общее количество договоров; общий объем договоров; общее количество торгуемых инструментов, являющихся предметом договоров; наибольшую цену торгуемого инструмента; наименьшую цену торгуемого инструмента. Кроме того, согласно п.7 Приложения 4 к Положению организатор торговли обязан раскрывать на сайте следующую биржевую информацию: по ценным бумагам - цену закрытия, признаваемую котировку, рыночную цену, текущую цену, средневзвешенную цену, наибольшую и наименьшую цены одной ценной бумаги по заключенным договорам. Таким образом, Положением не установлено требование по раскрытию на сайте ПАО Московская Биржа информации о ценовых границах ценных бумаг. ПАО Московская Биржа вправе в рамках своей оперативной деятельности самостоятельно принять решение о раскрытии данной информации на своем сайте, в Информационно-статистическом сервере или в иных каналах передачи информации. Банк России в соответствии со статьей 76.1 Федерального закона от 10.07.2002 No 86-ФЗ «О Центральном банке Российской Федерации (Банке России)» не вмешивается в оперативную деятельность некредитных финансовых организаций. В то же время обращаем Ваше внимание на то, что риск-параметры фондового рынка ПАО Московская Биржа рассчитываются центральным контрагентом НКО НКЦ (АО) в соответствии с Методикой определения НКОНКЦ (АО) риск-параметров фондового рынка и рынка депозитов ПАО Московская Биржа и раскрываются на сайте НКО НКЦ (АО)1.
И вот она сслыка (1) на параметры:
Почему в стратегии на ФР нельзя использовать параметры waprice (а также marketprice2, marketpricetoday, prevwaprice, priceminusprevwa)
Пользователь
Сообщений: Регистрация: 23.06.2019
14.02.2021 17:10:25
При разработке новых тестов на получаемые по итогам дня статистики обнаружился такой факт:
При этом несоответствие наблюдается для отдельных инструментов и разброс в отдельных случаях весьма существенный. С дататипами переменных и округлением не связано.
Как оказалось, waprice акций который раньше воспринимался как тот же дневной vwap данного класса, оказался гораздо хитрее. А именно, выяснилось, что при расчете waprice биржа "cмешивает" сделки не только из класса TQBR но и из других классов, в частности из РПС (с ЦК и без) и неполные лоты. Объем в режиме неполных лотов малый, до 500 тысяч рублей в день, а РПС - это 2 млрд рублей в день, что достаточно для точечного вредительства алгоритмам.
Подробности в расследовании по , но краткий вывод такой - используйте valtoday/voltoday.
waprice лежит в основе marketprice2, marketpricetoday, prevwaprice, priceminusprevwa - соответственно эти параметры также затронуты.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
14.02.2021 16:47:36
Я кстати, при повторных ситуациях такого типа, и в случае отказа от биржи или брокера, готовлю обоснование на 2-3 страницы и отправляю регулятору через Интернет-приемную ЦБ. Ответы приходят, хотя и не быстро. Если объективно представить информацию, сделав акцент на важность проблемы для всех участников торгов, то ответ зачастую положительный с применением мер надзорного характера.
По вопросу отсутствия значений по минимально и максимально возможной цене также две недели назад отправил обращение о необходимости со стороны биржи производить ежедневное опубликование ценовых ограничений по всем интерфейсам, а не только в шлюзе ASTS, в частности в FAST (там этих данных нет), в ISS - где любой может их закролить перед началом торгов, как запасной вариант, и на странице инструмента. Также на странице Мониторига () выводить список инструментов по которым последняя цена достигла ценового ограничения. Как отправить предложение в ЦБ:
1. 2. Выбрать "Участники рынка ценных бумаг и товарного рынка". 3. Приложить письмо. 4. Обрадоваться при получении ответа через 3 месяца.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
21.07.2020 21:01:44
Описанная выше проблема с диапазонами вечерней сессии не подтверждается. Ошибка, которую возвращает шлюз, происходит при отправке заявки с PRICEMIN во время аукциона закрытия регулярной сессии в 18:40 - 18:45. Это происходит, так как во время аукциона применяются дополнительные ценовые ограничения (более узкий диапазон), рассчитанные исходя из цены закрытия.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
21.07.2020 15:44:19
Обнаружил еще одну проблему с этими параметрами для инструментов на ФР. Они не обновляются до корректных значений в вечернюю сессию, на инструментах допущенных к торгам. При попытке выставить заявку с ценой равной PRICEMIN после 19:05 возвращается ошибка о нарушении диапазона. Хотелось бы узнать у поддержки - как исправляется данное поведение?
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
09.07.2020 14:51:28
У меня сегодня воспроизводится проблема только в Сбербанке, причем в терминалах как 7-ой так и 8-ой версии. В Финаме на 8-ой версии терминала данные корректны.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
07.07.2020 16:49:07
Повтор проблемы был утром 07.07.2020 но связано не с Квиком. Сегодня был сбой на аукционе открытия ФР. Проблемы с данным были и у FAST Multicast.
Параметр STARTTIME, ENDTIME, Вечерняя сессия на фондовой секции
Пользователь
Сообщений: Регистрация: 23.06.2019
28.06.2020 19:18:11
Во время аукциона открытия вечерней сессии статус проходит через те же значения, что и утром:
19:00:00 - 3 - аукцион начался, можно подавать заявки 19:04:[31-59] - 0 - аукцион закончился в случайную секунду, подача новых заявок и замена запрещена. Время окончания случайно в диапазоне по каждому инструменту в отдельности. 19:05:00 - 1 - началась вечерная сессия
По моему все логично.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
25.06.2020 16:32:11
25.06 проблему исправили о обоих брокеров. Спасибо поддержке.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
22.06.2020 19:44:58
Станислав, спасибо!
Очень надеюсь на скорейшее исправление. Я использую данные параметры повсеместно при валидации, думаю и другие участники торгов также на них полагаются при выставлении заявок. Ситуация усугубляется тем, что получить данные параметры альтернативным способом невозможно, по крайней мере я их не нашел на ISS сервисах биржи или даже в ежедневных dbf файлах например .
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
22.06.2020 15:19:24
Коллеги, вопрос актуален для тех, кто имеет доступ терминалов к боевым серверам. Видны ли вам актуальные значения PRICEMIN / PRICEMAX по состоянию на 22.06? У меня в Финаме и Сбербанке эти параметры стали равны нулю. Проверил на 8 и 7 версиях, что подсказывает, что проблема на сервере. Опасаюсь, что это сюрприз под запуск вечерней сессии.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
22.06.2020 14:38:58
Кстати, пример выше для TQBR LKOH.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
22.06.2020 14:38:24
Получается у вас тоже эти параметры обнулились? Обходные варианты имеют смысл, если дефект подтвержден, и его не планируют исправлять.
Нулевые значения PRICEMIN и PRICEMAX
Пользователь
Сообщений: Регистрация: 23.06.2019
22.06.2020 11:05:46
22.06 параметры PRICEMIN и PRICEMAX равны нулю.
Возможно это связано с тем, что сегодня состоится доп. сессия на фондовом рынке и произошло обновление Квик-серверов у брокеров (Финам, Сбербанк).
Как рекомендуется решать задачу получения диапазона допустимых значений для инструментов, например класса TQBR:
Код
2020-06-22 10:59:03.067028,INFO: p PRICEMAX : {param_image=0.0, param_type=1, param_value=0.000000, result=1}
2020-06-22 10:59:03.067028,INFO: p PRICEMIN : {param_image=0.0, param_type=1, param_value=0.000000, result=1}
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
Пользователь
Сообщений: Регистрация: 23.06.2019
14.02.2020 19:57:42
Код
ID GAZP SU26228RMFS5 EUR_RUB__TOD ID
CURRENTVALUE Знач.
LAST 232.42 112.9 68.83 Цена послед.
LASTCHANGE -0.48 0.27 -0.41 % измен.закр.
BID 232.43 112.803 0 Спрос
OFFER 232.47 112.9 0 Предл.
HIGH 235.4 113 68.965 Макс. цена
LOW 230.91 112.3 68.6375 Мин. цена
VALTODAY 7474066739 693233355 13710644015 Оборот
OPEN 233.79 112.401 68.9025 Откр.
LOTSIZE 10 1 1000 Лот
SHORTNAME ГАЗПРОМ ао ОФЗ 26228 EURRUB_TOD Бумага сокр.
SECTYPE ао РФ вал Тип
STATUS торгуется торгуется торгуется Статус
BIDDEPTH 442 5 0 Кол. спрос
BIDDEPTHT 544328 240386 0 Общ. спрос
NUMBIDS 6259 46 0 Заявки куп.
OFFERDEPTH 148 26 0 Кол. предл.
OFFERDEPTHT 526889 408032 0 Общ. предл.
NUMOFFERS 4329 11 0 Заявки прод.
CHANGE -1.13 0.3 -0.285 Измен. к закр.
QTY 45 73 100 Кол-во послед.
TIME 18:21:23 18:06:15 14:59:37 Время послед.
VOLTODAY 32111450 614207 199275000 Общее кол-во
TRADINGSTATUS открыта открыта закрыта Сессия
VALUE 104589 82417 6883000 Оборот посл.
WAPRICE 233.35 112.867 68.8026 Ср. взв. цена
HIGHBID 254 113.25 69.1375 Лучш. спрос
LOWOFFER 221.55 112.3 68 Лучш. пред
NUMTRADES 46659 39 4380 Кол-во сделок
PREVPRICE 233.55 112.6 69.115 Цена закр.
PREVWAPRICE 235.54 112.418 69.2124 Пред. оц.
CLOSEPRICE 0 0 0 Закр.
MARKETPRICE 235.19 112.549 Вч.рын.цена
MARKETPRICETODAY 0 0 Рын.цена
MARKETPRICE2 0 0 Рын.цена2
ADMITTEDQUOTE 0 0 Призн.котир.
ISSUESIZE 23673512900 450000000 Объем обр.
PREVDATE 13.02.2020 13.02.2020 Дата посл.торг.
LCURRENTPRICE 232.29 112.817 Оф.тек.цена
LCLOSEPRICE 0 0 Оф.цена закр.
QUOTEBASIS Цена % от ном. Тип цены
PREVADMITTEDQUOT 233.55 112.601 Призн.кот.пред.
LASTBID 232.43 112.803 Спрос сессии
LASTOFFER 232.47 112.9 Предл.сессии
PREVLEGALCLOSEPR 233.55 112.601 Пред.цена закр.
OPENPERIODPRICE 233.79 0 Цена предторг.
MIN_CURR_LAST 232.29 112.817 Мин.тек.цена
LONGNAME "Газпром" (ПАО) ао ОФЗ-ПД 26228 10/04/30 EURRUB_TOD - EUR/РУБ Бумага
CODE GAZP SU26228RMFS5 EUR_RUB__TOD Код бумаги
ISINCODE RU0007661625 RU000A100A82 ISIN
REGNUMBER 1-02-00028-A 26228RMFS Рег.номер
CFI_CODE CFI
STOCKCODE StockCode
SEDOL SEDOL
RIC RIC
CUSIP CUSIP
STOCKNAME StockName
BSID Bloomberg ID
QTY_SCALE 0 0 0 Точн. кол-ва
LOT 1 1 1 Кратность лота
CLASSNAME МБ ФР: Т+ Акции и ДР МБ ФР: Т+ Облигации МБ Валюта: ЕТС Класс
CLASS_CODE TQBR TQOB CETS Код класса
TRADE_DATE_CODE 14.02.2020 14.02.2020 14.02.2020 Дата торгов
SEC_FACE_VALUE 5 1000 1 Номинал
SEC_FACE_UNIT SUR SUR SUR Валюта
SEC_SCALE 2 4 4 Точность
SEC_PRICE_STEP 0.01 0.001 0.0025 Шаг цены
DISCOUNT1 17 8 Дисконт1
DISCOUNT2 21 9 Дисконт2
DISCOUNT3 28 10 Дисконт3
SEC_COMMENT Комментарий
AGENT_ID Агент по размещ.
SECTYPESTATIC Ценные бумаги Облигации Валюта Тип инстр-та
SECSUBTYPESTATIC Акция обыкновенная Облигационный федеральный займ Подтип инстр-та
MAX_ACT_QTYSCALE 0 0 0 Макс.акт.точ.кол
CURRENCYID SUR SUR Сопр.валюта
LISTLEVEL 1 1 Листинг
PRIMARYDIST Нет Нет Размещение
QUALIFIED Не предназначена Не предназначена Квалиф. инвестор
ASSURED Разрешены Разрешены Разрешены Необесп. торги
ANONTRADE Разрешена Разрешена Разрешена Анон. торг.
ACCRUEDINT 24.53 НКД
YIELD 6.03 Доходность
COUPONVALUE 38.15 Размер купона
YIELDATWAPRICE 6.03 Доход.оц.
NEXTCOUPON 22.04.2020 Дата выпл. куп.
MAT_DATE 10.04.2030 Погашение
DAYS_TO_MAT_DATE 3708 До погашения
COUPONPERIOD 182 Длит.куп.
YIELDATPREVWAPR 6.09 Доход.пред.оц.
BUYBACKDATE Дата расч.доход
BUYBACKPRICE 0 Оферта
OBLPERCENT Процентная Тип цены обл.
FULLCOVEREDFLAG Нет Нет Запр.необ.торгов
YIELDATPREVWAPRI 6.09 Доход.пред.оц.
PRICEMINUSPREVWA 0.482 -0.3824 Изм. к пред.оц.
DURATION 2658 Дюрация
SETTLECODE Y2 Y1 T0 Код расч.
ISSUESIZEPLACED 194536263 Объем в обр.
SETTLEDATE 18.02.2020 17.02.2020 14.02.2020 Дата расч.
PRICEMAX 254.28 117.338 71.1125 Макс.возм.цен.
PRICEMIN 213.36 107.703 66.575 Мин.возм.цен.
TRADINGPHASE Недоступно Бирж.Сессия
AUCTPRICE 233.79 Цена аукц.
AUCTVALUE 3418009.8 Объем аукц.
AUCTVOLUME 14620 Кол-во аукц.
AUCTNUMTRADES 57 Кол-во сд.аукц.
MIN_CURR_LAST_TI 18:21:00 Вр. изм.м.т.ц.
PLANNEDTIME 9:50:00 Начало аук.план
STARTTIME 9:50:00 Начало.аук.
ENDTIME 9:59:47 Окончание.аук.
MARKETVOLB 0 Рын.пок.
MARKETVOLS 0 Рын.прод.
DIVIDENDVALUE 0 Дивиденды
DIVIDENDDATE Дата з.р.
FIRST_CUR EUR Базовая валюта
SECOND_CUR RUB Котир.валюта
BASEPRICE 0 Баз.курс
RTH 0 Верх.гран.
RTL 0 Нижн.гран.
K_H 0 К.верх.гран.
K_L 0 К.нижн.гран.
SETTLEDATE1 Дата расч.1
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
Пользователь
Сообщений: Регистрация: 23.06.2019
14.02.2020 19:57:08
ID
GAZP
SU26228RMFS5
EUR_RUB__TOD
ID
CURRENTVALUE
Знач.
LAST
232.42
112.9
68.83
Цена послед.
LASTCHANGE
-0.48
0.27
-0.41
% измен.закр.
BID
232.43
112.803
0
Спрос
OFFER
232.47
112.9
0
Предл.
HIGH
235.4
113
68.965
Макс. цена
LOW
230.91
112.3
68.6375
Мин. цена
VALTODAY
7474066739
693233355
13710644015
Оборот
OPEN
233.79
112.401
68.9025
Откр.
LOTSIZE
10
1
1000
Лот
SHORTNAME
ГАЗПРОМ ао
ОФЗ 26228
EURRUB_TOD
Бумага сокр.
SECTYPE
ао
РФ
вал
Тип
STATUS
торгуется
торгуется
торгуется
Статус
BIDDEPTH
442
5
0
Кол. спрос
BIDDEPTHT
544328
240386
0
Общ. спрос
NUMBIDS
6259
46
0
Заявки куп.
OFFERDEPTH
148
26
0
Кол. предл.
OFFERDEPTHT
526889
408032
0
Общ. предл.
NUMOFFERS
4329
11
0
Заявки прод.
CHANGE
-1.13
0.3
-0.285
Измен. к закр.
QTY
45
73
100
Кол-во послед.
TIME
18:21:23
18:06:15
14:59:37
Время послед.
VOLTODAY
32111450
614207
199275000
Общее кол-во
TRADINGSTATUS
открыта
открыта
закрыта
Сессия
VALUE
104589
82417
6883000
Оборот посл.
WAPRICE
233.35
112.867
68.8026
Ср. взв. цена
HIGHBID
254
113.25
69.1375
Лучш. спрос
LOWOFFER
221.55
112.3
68
Лучш. пред
NUMTRADES
46659
39
4380
Кол-во сделок
PREVPRICE
233.55
112.6
69.115
Цена закр.
PREVWAPRICE
235.54
112.418
69.2124
Пред. оц.
CLOSEPRICE
0
0
0
Закр.
MARKETPRICE
235.19
112.549
Вч.рын.цена
MARKETPRICETODAY
0
0
Рын.цена
MARKETPRICE2
0
0
Рын.цена2
ADMITTEDQUOTE
0
0
Призн.котир.
ISSUESIZE
23673512900
450000000
Объем обр.
PREVDATE
13.02.2020
13.02.2020
Дата посл.торг.
LCURRENTPRICE
232.29
112.817
Оф.тек.цена
LCLOSEPRICE
0
0
Оф.цена закр.
QUOTEBASIS
Цена
% от ном.
Тип цены
PREVADMITTEDQUOT
233.55
112.601
Призн.кот.пред.
LASTBID
232.43
112.803
Спрос сессии
LASTOFFER
232.47
112.9
Предл.сессии
PREVLEGALCLOSEPR
233.55
112.601
Пред.цена закр.
OPENPERIODPRICE
233.79
0
Цена предторг.
MIN_CURR_LAST
232.29
112.817
Мин.тек.цена
LONGNAME
"Газпром" (ПАО) ао
ОФЗ-ПД 26228 10/04/30
EURRUB_TOD - EUR/РУБ
Бумага
CODE
GAZP
SU26228RMFS5
EUR_RUB__TOD
Код бумаги
ISINCODE
RU0007661625
RU000A100A82
ISIN
REGNUMBER
1-02-00028-A
26228RMFS
Рег.номер
CFI_CODE
CFI
STOCKCODE
StockCode
SEDOL
SEDOL
RIC
RIC
CUSIP
CUSIP
STOCKNAME
StockName
BSID
Bloomberg ID
QTY_SCALE
0
0
0
Точн. кол-ва
LOT
1
1
1
Кратность лота
CLASSNAME
МБ ФР: Т+ Акции и ДР
МБ ФР: Т+ Облигации
МБ Валюта: ЕТС
Класс
CLASS_CODE
TQBR
TQOB
CETS
Код класса
TRADE_DATE_CODE
14.02.2020
14.02.2020
14.02.2020
Дата торгов
SEC_FACE_VALUE
5
1000
1
Номинал
SEC_FACE_UNIT
SUR
SUR
SUR
Валюта
SEC_SCALE
2
4
4
Точность
SEC_PRICE_STEP
0.01
0.001
0.0025
Шаг цены
DISCOUNT1
17
8
Дисконт1
DISCOUNT2
21
9
Дисконт2
DISCOUNT3
28
10
Дисконт3
SEC_COMMENT
Комментарий
AGENT_ID
Агент по размещ.
SECTYPESTATIC
Ценные бумаги
Облигации
Валюта
Тип инстр-та
SECSUBTYPESTATIC
Акция обыкновенная
Облигационный федеральный займ
Подтип инстр-та
MAX_ACT_QTYSCALE
0
0
0
Макс.акт.точ.кол
CURRENCYID
SUR
SUR
Сопр.валюта
LISTLEVEL
1
1
Листинг
PRIMARYDIST
Нет
Нет
Размещение
QUALIFIED
Не предназначена
Не предназначена
Квалиф. инвестор
ASSURED
Разрешены
Разрешены
Разрешены
Необесп. торги
ANONTRADE
Разрешена
Разрешена
Разрешена
Анон. торг.
ACCRUEDINT
24.53
НКД
YIELD
6.03
Доходность
COUPONVALUE
38.15
Размер купона
YIELDATWAPRICE
6.03
Доход.оц.
NEXTCOUPON
22.04.2020
Дата выпл. куп.
MAT_DATE
10.04.2030
Погашение
DAYS_TO_MAT_DATE
3708
До погашения
COUPONPERIOD
182
Длит.куп.
YIELDATPREVWAPR
6.09
Доход.пред.оц.
BUYBACKDATE
Дата расч.доход
BUYBACKPRICE
0
Оферта
OBLPERCENT
Процентная
Тип цены обл.
FULLCOVEREDFLAG
Нет
Нет
Запр.необ.торгов
YIELDATPREVWAPRI
6.09
Доход.пред.оц.
PRICEMINUSPREVWA
0.482
-0.3824
Изм. к пред.оц.
DURATION
2658
Дюрация
SETTLECODE
Y2
Y1
T0
Код расч.
ISSUESIZEPLACED
194536263
Объем в обр.
SETTLEDATE
18.02.2020
17.02.2020
14.02.2020
Дата расч.
PRICEMAX
254.28
117.338
71.1125
Макс.возм.цен.
PRICEMIN
213.36
107.703
66.575
Мин.возм.цен.
TRADINGPHASE
Недоступно
Бирж.Сессия
AUCTPRICE
233.79
Цена аукц.
AUCTVALUE
3418009.8
Объем аукц.
AUCTVOLUME
14620
Кол-во аукц.
AUCTNUMTRADES
57
Кол-во сд.аукц.
MIN_CURR_LAST_TI
18:21:00
Вр. изм.м.т.ц.
PLANNEDTIME
9:50:00
Начало аук.план
STARTTIME
9:50:00
Начало.аук.
ENDTIME
9:59:47
Окончание.аук.
MARKETVOLB
0
Рын.пок.
MARKETVOLS
0
Рын.прод.
DIVIDENDVALUE
0
Дивиденды
DIVIDENDDATE
Дата з.р.
FIRST_CUR
EUR
Базовая валюта
SECOND_CUR
RUB
Котир.валюта
BASEPRICE
0
Баз.курс
RTH
0
Верх.гран.
RTL
0
Нижн.гран.
K_H
0
К.верх.гран.
K_L
0
К.нижн.гран.
SETTLEDATE1
Дата расч.1
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
Пользователь
Сообщений: Регистрация: 23.06.2019
31.01.2020 14:54:23
Впрочем, параметров AUCTVOLUME, MARKETVOLB, MARKETVOLS в документе нет. Возможно и другие параметры отсутствуют. Не вселяет уверенности, что документ актуален.
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
Пользователь
Сообщений: Регистрация: 23.06.2019
31.01.2020 14:30:45
Спасибо, нашел параметры в разделе 8.12.3
Определение текущего режима торгов на аукионе открытия
Пользователь
Сообщений: Регистрация: 23.06.2019
30.01.2020 13:29:48
Проверил, пока (во время регулярной сессии) значение этого параметра равно nil.
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
Пользователь
Сообщений: Регистрация: 23.06.2019
30.01.2020 12:25:04
Я бы рад, но у меня нет Excel, терминал Квика работает в ВМ (разработка) и в дата-центре (торговля) без установленного Excel. Плюс интерфейс только на русском. может посодействуете с экспортом списка с именами параметров на англ. языке?
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
Пользователь
Сообщений: Регистрация: 23.06.2019
30.01.2020 09:54:23
Спасибо, проверил на утреннем аукционе. AUCTVOLUME отображает корректное значение. Нет ли у Вас возможности опуликовать актуальный список всех поддерживаемых параметров?
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
Я получаю значения этих параметров через функцию getParamEx(class_code, sec_code, param_name)
Параметр VOLUME из AUCTSTATS - ожидаемый объем в ходе аукциона
Пользователь
Сообщений: Регистрация: 23.06.2019
29.01.2020 12:41:52
В каком параметре транслируется ожидаемый объем в ходе аукциона (фаза сбора заявок, открытие)? Согласно документации, это должен быть VOLUME, но он постоянно nil. При этом AUCTPRICE возвращает корректное значение.
Определение текущего режима торгов на аукионе открытия
Пользователь
Сообщений: Регистрация: 23.06.2019
27.01.2020 10:48:34
Уже проверил. STATUS остается неизменным, он не реагирует на стадии аукциона.
Определение текущего режима торгов на аукионе открытия
Пользователь
Сообщений: Регистрация: 23.06.2019
23.01.2020 18:53:32
После окончания фазы сбора заявок (случайно в 09:59:30+) на аукционе открытия наблюдаю, что TRADINGSTATUS остается на 3 (открыта) и при этом ENDTIME (время окончания фазы) иногда проставлено иногда нет.Существует ли надежный способ узнать, можно ли выставлять заявку во время аукциона открытия?
Замена заявки на ФР при помощи Order Cancel/Replace Request (G)
Пользователь
Сообщений: Регистрация: 23.06.2019
24.12.2019 12:11:13
Уважаемая Аркатех, прошу добавить MOVEORDER для ФР Мосбиржи в следующих версиях Квик.
Данный тип транзакции идентичен NEW_ORDER / KILL_ORDER в плане полей и обработки и не требует существенных затрат. Он позволит значительно упростить клиентский код, поскольку не нужно будет поддерживать синхронизацию для cancel+open.
Замена заявки на ФР при помощи Order Cancel/Replace Request (G)
Пользователь
Сообщений: Регистрация: 23.06.2019
23.12.2019 13:35:36
Есть ли возможность отправить на биржу транзакцию, которая произведет замену заявки (изменение цены)? Сейчас использую NEW_ORDER и KILL_ORDER в sendTransaction для замены.
Из документа биржи:
Код
Сообщение Order Cancel/Replace Request (G) используется для изменения параметров заявки. Обработка приказа Order Cancel/Replace Request (G) – атомарная операция, то есть другие приказы не могут обрабатываться между снятием исходной заявки и регистрацией новой. Время обработки сообщения (время ожидания ответа) Order Cancel Replace превышает время ожидания ответа при регистрации новой заявки, но меньше суммарного времени обработки пары приказов Order Cancel Request + New order single. Среднее время доставки приказа Order Cancel Replace от клиента во входную очередь ядра торговой системы не отличается от времени доставки приказов других типов (New Order Single или Order Cancel Request).
Имя поля 'Тип события активации заявки' в специальном формате
Пользователь
Сообщений: Регистрация: 23.06.2019
21.11.2019 13:05:11
С отправкой в универсальном формате знаком, сейчас так и далею. Но вопрос был про поле в специальном формате. Получается такого поля нет, для отправки в аукцион поддерживается только универсальный формат?
Имя поля 'Тип события активации заявки' в специальном формате
Пользователь
Сообщений: Регистрация: 23.06.2019
20.11.2019 14:31:38
При отправке предложенного Вами варианта транзакции терминал возвращает ошибку.
- Неправильно указан тип: "Заявка в аукцион закрытия"
Имя поля 'Тип события активации заявки' в специальном формате
Пользователь
Сообщений: Регистрация: 23.06.2019
19.11.2019 15:46:06
В объекте Order этот тип (limit on close) указывается числом 8 в поле exec_type. Хотелось бы иметь возможность отправить транзакцию аналогичным образом:
Код
exec_type='8'
Имя поля 'Тип события активации заявки' в специальном формате
Пользователь
Сообщений: Регистрация: 23.06.2019
18.11.2019 16:26:49
Для указания типа по остатку в специальном формате можно использовать поле execution_condition:
Есть ли соответствующее поле для подачи заявки в аукцион?
В универсальном формате tri это указывается как:
Код
transaction['Тип события активации заявки'] = 'Заявка в аукцион закрытия'
Механизм исполнения заявки с типом "По одной цене"
Пользователь
Сообщений: Регистрация: 23.06.2019
11.11.2019 23:22:54
Обработка лимитной заявки с типом "По одной цене" предполагает несколько сценариев. Один из таких сценариев - это дефицит количества во встречных заявках по наилучшей цене.
Допустим, что есть встречные заявки на продажу:
- 261.10 x 10 - 260.00 x 5
Отправляем заявку на покупку "По одной цене": + 262.00 x 20
Данная заявка на покупку приведет к сделке на 5 бумаг по 260.00, при этом остаток будет поставлен в очередь в книге заявок по цене первой сделки 260.00. Состояние книги после частичного исполнения:
- 261.10 x 10 + 260.00 x 15
После отправки транзакции с этим признаком
Код
transaction['Тип по цене'] = 'По одной цене'
transaction['Цена'] = '262.0'
в терминал Квик приходит событие OnOrder, в котором цена указана 260.00, при этом заявка является частично исполненной. 1) Сохраняется ли в таблице Order информация об исходной лимитной цене (262), или эта информация утрачивается? 2) В какой момент (сервер Quik, терминал Quik, биржа) происходит данное "уточнение" цены заявки. 3) Для каких стратегий может быть полезен данный тип заявки?
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 23.06.2019
08.11.2019 14:54:28
При снятии обнаружил ошибку в своем коде, айсберг заявка снимается стандартным образом.
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 23.06.2019
08.11.2019 14:38:28
Николай, странно, что я сразу не спросил, подскажите как снять айсберг-заявку. Стандартный KILL_ORDER возвращается с ошибкой 5 "Вы не можете снять данную заявку".
transaction['Тип события активации заявки'] = 'Заявка в аукцион закрытия'
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 23.06.2019
06.11.2019 13:40:01
Да, в стандартной форме вижу все поля (хоть и не красавица). Для записи в карман всех полей подходит хорошо.
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 23.06.2019
06.11.2019 12:41:24
Спасибо, не сразу увидел Языковые настройки, так как в терминале моего брокера они отключены.
В регламенте биржи по поводу айсбергов указывается следующее:
Цитата
Для айсберг-заявки возможна подача в Систему торгов заявки с указанием следующих дополнительных признаков, уточняющих особенности заключения сделок по типу исполнения заявки:
по остатку: - «Поставить в очередь»;
по цене: - «По одной цене»; - «По разным ценам».
В интерфейсе Quik условие по цене отключено, но отправить айсберг программно получается.
Код
transaction['Тип по цене'] = 'По одной цене'
Получается, что программно можно отправлять заявки, которые в интерфейсе недоступны?
Вместе с тем, условие по остатку в интерфейсе Quik содержит неподдерживаемые значения.
При отправке айсберга с признаком "Полностью или отклонить" возвращается ошибка с кодом 159 "Указанный тип заявки не разрешен для этого финансового инструмента и режима торгов". Насколько я понимаю - это ошибка пришла от биржи?
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 23.06.2019
06.11.2019 11:41:44
Подскажите, как можно переключиться на англ. язык интерфейса? Не вижу такой опции в настройках клиентского места.
Правильно я понимаю, что sendTransaction позволяет отправлять в терминал транзакции нескольких типов - заявки типа NEW_ORDER, NEW_STOP_ORDER, KILL_ORDER, и т.д. Данные типы транзакций от настроек интерфейса не зависят. Затем есть тип записей, которые в интерфейсе так и называются Транзакции, и этот тип требует указания полей в формате tri-файла. В связи с этим вопрос - почему именно айсберги нужно отправлять в tri формате?
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 23.06.2019
06.11.2019 11:14:48
Еще одна проблема обнаружилась:
Файлы исходных кодов сохраняются в кодировке UTF-8. Подача айсберг заявки в данном случае не проходит. Нужно, чтобы кодировка файлf была Windows 1251.
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 23.06.2019
06.11.2019 11:03:47
Николай, спасибо, Ваш пример работает.
Язык интерфейса - русский, но весь код на Lua написан на английском языке, в частности валидация и обработка заявок, транзакций и пр. Отсюда желание использовать поля именно на английском языке.
Если заменить поле в Вашем примере, то даже сообщение об ошибки ссылается на необходимое поле на английском языке.
- Не найдено поле "operation" для транзакции "Ввод айсберг заявки" по классу "МБ ФР: Т+ Акции и ДР"
Конечно, если англ. поля не поддерживаются, то ничего не сделаешь, придется как-то выкручиваться, но это заслуживает исправления в Квике.
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 23.06.2019
05.11.2019 19:25:21
Похоже форум не поддерживает inline картинки (я сделал скриншот junior).
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 23.06.2019
05.11.2019 19:24:08
Установил последнюю 32-битовую версию Quik Junior на англ. языке, чтобы вывести поля на англ. языке. Айсберг-заявки отсутствуют в списке возможных транзакций и похоже не поддерживаются в принице. [img]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvUAAAHSCAYAAABsAzSeAAAEGWlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VQNcC+8AAAILaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+MTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6UGhvdG9tZXRyaWNJbnRlcnByZXRhdGlvbj4yPC90aWZmOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoPRSqTAABAAElEQVR4Ae3dC3wc1Z3o+X8JcBJEAGHr1SYDmeRDwBhZlgz57J3YYEgM2JJhgDhzZ+6dYIyfkTN37t29ExsMxgaze3d2MsHiYRmw+dzMIyEQgmzAJmCwmZ0Fu2VJtjHJfjaBjPU2rwxKZmSj3v+p6uqubnVLrZbU6q769WdiddfjnPP/Hqb6X6dOdVlLliyJiL7C4bAUFxebt7wQQAABBBBAAAEEEECgAAS+/OUvy5lnnilnum09++yzpayszP3IXwQQQAABBBBAAAEEEMhzgVOnTiUm9aa9kYg9aJ/nTad5CCCAAAIIIIAAAggg4BWIjdSbhJ6k3kvDewQQQAABBBBAAAEE8lvAzd+L8ruZtA4BBBBAAAEEEEAAAf8LVFRUyPXXXy9TpkwZEmxRUZFce+218sUvfnHIOndBbKT+P3z7v8n/Ms1d7Pn7Uav87Pl2+dizKF/eWudWSf0t50vrzgPyL+deEXv/G5nYaUTZ1OvdZ6Lbly/9QzsQQAABBBBAAAEERhYwSftVV10l5513nnz961+Xl19+WQYGBuwdzbqrr75apk+fLqWlpXLixInYOm/JsaT+n3b+tfy/5kbZz1fJ4lvPl8M79su/WN5N8++9ewuAPXXot+3y/M7ctDGber37SJ675kaRWhBAAAEEEEAAAQSMwODgoPz85z+XBQsWyNSpU2OJ/enTp+Waa66RCy+80E7kX3rppSEJvTv9JpbUmwLthfHsMz7erYn+TdeWyEeRi+XiC96VfTtel9/oKPlNt86W86OD4r9+7SnZ/54WYra9TuTXH8yW2dErBLF1ppI/mCffnh9dYUXLcpNcs2+qMs1+gxfJ1XdcIxeb+qyPpOWZVrnglmo5f1Bk/u0i+575UGbfViKHn9S2mfIStvfUM5b2abH2y2tkyvPWmyq+iLbd21bj58bslslfBBBAAAEEEEAAgcAKfPLJJ7Jnzx57Cs60adPkG9/4hp3Ah0Ih+++LL74oH330UVqfWFJvj3ZHk1WTN9ufPbtFSi6WyKs7Zed7ZuVFcs2tF8uvnt0p7WZezrmzNLG9Wr7wxGvyG7P6/Nly0a+ek507PxLrD66Wb8+uktZ32+Rjs991lrz6xE47qT2/arHcfM0fyM7XtNBhyzxPqm+6Jla/Xeb88+SnzxyW80xCbeo9b5ZUm7o1BtP+i/Ws5twWbUNbtA03VclPf6ZtyLZ9up/35TWKvU8b37vymrbVTv5NW01Cb3bihQACCCCAAAIIIIBAVMAk9mY0/oYbbhCT2JuXmYbzwgsvpE3o7UF53S6W1Nt7DfePjqr/+l3dwCSk1nvy2g6T3UdfH3+kyXKJ+0nXvyutrXomodtG9Iziw6klcp4msfa8/Mh5cv75Ir/RDx+1Py873b2GK/O8i+Wiae/K4Xd1Y1Pmb16XnebsQU8mUr40ub74S9qGJ6JteO9defe6arnovDZpN8l0Nu1LWVGKheniS7EpixBAAAEEEEAAAQQQ8Ar8/ve/F5Pcf/7zn7cX/+53v5P+/n7vJinfZ57Up9j94qtvl2u+GF0ReVd+lWKbhEUmcX/mfJ1ic7vU2Mn1h9Ly7M+c0f7ohmnL/OBD+VgT+oxe550v5yVs+JF89EHCgtQfMmhf6h2jS8e6/7CFsxIBBBBAAAEEEEDAzwLur9xUVlaKeaiUGaU/X0fDza/imKk5Zlm6V0JSnzAFRyfsR4qcLNod1o9El0V0vvq1d14rkVeelB2vWRLREfM//uYFYtYPulN43G2TPsvHrfLck61Oe/7gGll6TZW8+9NWe77+sGVecIGc++mgfBRtkynA2y5vvYMf6gmAXjmIt1evDlwg8n4k+/Z9bMXPKNLVa3uljc+Zb+O2KV2HsBwBBBBAAAEEEEAgeAJnnHGGzJ8/P3ZT7O7du+0k/sYbb7Sn4pjE3kzNSZfYD0nqvYRu8jpkmZ4xnKdTWFp+rYm15SSrYqad6Ayc96IfzT5D9jdJfM2H8qxJ4nV9PE3WD8OV+aFOn3m/Rv7wi1r+u1rBedX2ScThp9MMv2vbfv3/XSuzZ5fIe60finXxF+XiD34tLaZSzxD+aNo3ZFstashruPg8G2dUlmd73iKAAAIIIIAAAgj4V8BN6L/whS/Yo/O7du2KzaE38+kXLlxoJ/Zmrr25Ydab2Lt55dCk3k7K9Z/oDac2X/Kyjw7LvoN/LLcsu8PR/fDX8uv3S6REfwonYufZnv09+w6++6rs++IyueWOGmc/69fyyvbD8qHJ7ocrU0feW555Va5dfofcYcqzPpTw08/Krz88X0o02b/uzvny6tMf6op4vb965VW5ePkfi12Vtx5Pe9y37n7Dts9psfOvu6Mx8rwfdn81Micmpq2vbH9V3k04o/EWznsEEEAAAQQQQACBIAmYn6408+bNdBuT0H+oua/7MvPrzaj9okWLxMy3//TTT4cOnOvG1pIlS+y09MiRI3KBTnHhhQACCCCAAAIIIIAAArkXKC4uTntT7Gc/+1l7hN4k9d6XuaH23HPPTfz1G3f43rsh7xFAAAEEEEAAAQQQQGDiBcyofLqXGaUf7lU03ErWIYAAAggggAACCCCAQP4LxObUm1F6Rurzv8NoIQIIIIAAAggggAACroCbvzNS74rwFwEEEEAAAQQQQACBAhWIjdR/9PHHYv7HCwEEEEAAAQQQQAABBApD4Korr7Qbykh9YfQXrUQAAQQQQAABBBBAYIiA+VUc8yKpH0LDAgQQQAABBBBAAAEECkuApL6w+ovWIoAAAggggAACCCAwRICkfggJCxBAAAEEEEAAAQQQKCwBkvrC6i9aiwACCCCAAAIIIIDAEIHYr98MWeNZcGpgwPOJtwgggAACCCCAAAIIIDAZAmdNmZKy2oySerNnSUlJygJYiAACCCCAAAIIIIAAArkR+KS/P2VFGSf1Zu90haQsmYUIIIAAAggggAACCCAwbgLnFBenLYs59WlpWIEAAggggAACCCCAQGEIkNQXRj/RSgQQQAABBBBAAAEE0gqQ1KelYQUCCCCAAAIIIIAAAoUhQFJfGP1EKxFAAAEEEEAAAQQQSCtAUp+WhhUIIIAAAggggAACCBSGAEl9YfQTrUQAAQQQQAABBBBAIK0ASX1aGlYggAACCCCAAAIIIFAYAiT1hdFPtBIBBBBAAAEEEEAAgbQCJPVpaViBAAIIIIAAAggggEBhCIxLUj9zyRbZ8q2ZY4rYmjpf/suDfyHzp2kxn14u//F/j75PV+pw2wy3Ll15qZaPVzmpymYZAggUlIBvj3N51gsJ3wV51jaagwACCOSzwJiTenMAvi7UJu2V1zkJeZbRRt7fJ3+77gey72SWBbAbAgggMEECvjjO5esgRVK7+C6YoP+IKRYBBHwvMOakvuyKKom0vSr7WkWuuKLU92AEiAACwRPgOBe8PidiBBBAoNAEzhxTgyOlMrNa5MgP+6Q30i7Wn8+U0lf3SZ+UynX/5S9l2s/Xy4+OOTUUzfiWPLCgV/7m+/uk/Ftb5M90P/OKtP29rP/RUWfKzf/5den+ax2t73HWuf+ay95DtndXlum0nf/2DSmPiHS9/H15aF+fuyb214yy/cX/6mwjRW3yw//+IzmWfDqjsZg2f73c2a3177Tt7bEi7Dcp25Fqv6MpylKHlO2wUm+bWDOfEEBg0gT8cJwzo+H/48+kalCk6r9ukW+Y4+7fR+Q/6jE30iIyq6bbPi5af5LiWGv21e16XuqWbyyYZXdD7Fib6vinx7qUx0qzZ/L2P/w7KfrPqdtlfxfolduE46YWYR+bzfdKFu0yTeCFAAII+FVgTEm9NW2mzLTa5e81j47IUTka+VOZWbpPp9D0yb6X2+T+K2ZqUq8Ju75mzJwlrS+vlz5LpO/H62Xdj3Vh9KA8/5WjQxJ5e6foP0fTbR8plwULRP7me+vl5DSTuP+pzD+SdFKgdfzJ/1YlbX+93p7aY04uGq4rlWPe5D/6RXN5+/dlnXe5txH6PlU7Xi+7Vq7r/ntZ9wMnTrNL0eVDl5lYU7XjeE+KbZPq5SMCCEyegC+Oc2cck3/4738n4g6c2NMcL9cDd7mU9elx73t6EDcDHcMca79e/oqsW/8jsQdo/vxaufyVH8nxmamPX6mOlfv6nAGMIcfZVO1yu9scN3VApuuH6+VvYwMjer/V/xU9zmv7R9Mut1j+IoAAAn4UGFNSb1+Sbv17O1HXVF2O6hScv7hupuzTkffBI0flyLdnyuX/cFSORS6XmdNfFv0O0GEX/e4wo/b/yRnxkUiPdI8gm3Z7q0f2/lCvDGiZonPyf374G3K5GWn3jPRbZWU6il9uj05p/m+/Im1mmCc+om++tK+obJOXvx/9Yotul/wnVTsiPb3S+5//VL7bG79KkGpZunZE2ofun1wvnxFAYPIE/HKcSymox9AjR+LHwlTHOHs/3e5lHXwxL3Nsb5evix5a5e0Uxz+zTapyMj3Omv3dl33ctPTYfESX6EmHmW+fcJwfZbvccvmLAAII+FEg+6ReR1Cuvb5cKiN/KQ9+w0NTdLmTyOvI0Ksvfl2+paPiJyP6BRBN/s2l1O/+ueil3vVyzEw9+cs/9ew89G3G2+toe3ml7m/y9eSXfin88K9STLlJ3m6Yz+na4dzUpVOKrvkLeXBLefTSsLnpN3HZj82ZS5p2JG/rTlkapjmsQgCBXAgE6DiX7hg3HHOq49+Pu0d3jB+u/GzXpWoXx9VsNdkPAQQKRSB5ZnnG7S7SqTVVPS/L36zTqTTro/9b9335edcsmXmFU0zvEZ1nP+tamV/dLa+84owGWeU6ct6to9M6um6P3ETnsKereNjtdQTevTnXHQU6akZ0PK9Ib6/0RGbJdXpyke4VOalXFbTdw20zbDu04J7XfiB/u7dHysvi9XiXjdQO77bp2slyBBDIrYCfjnMjyY10jBtuf+/xK105mRxnk+twj5vud4o58fh6TZskH+eT93M/e9vlLuMvAggg4FeBrEfqzRz5rrbvR6feRHksnYLT1iN/MdOZS28O4kd1JN/MOf/H6OnD4LFX5eff+Ev5r2Z4v7dNdPNhX8Nur5dee0v/1B4hN4W0/k8d/Tf1fOopUq8Y/ONfv6zz7eNXFGI357qbabtf+Zu/k7L/Ed8m+UbZdO1IuMxs34TbJ0UzPdOLosvkjL6U7bj7yOXxqUjutlmfarkB8RcBBMZDwFfHOT0WHmn5M/kzz42yXqN0xzjvNsnvUx3/Bq00x/h0x9ljw7QrdvzeIg/qjyGIHvP36o8pDDnOJzUsVbvsewaStuMjAggg4CcBa8mSJeZQKfsPHEgb16mBASkpKZFP+vvTbsMKBBBAAAEEEEAAAQQQmDiBc4qLh+Tj8+bOtStkTHji3CkZAQQQQAABBBBAAIGcCJDU54SZShBAAAEEEEAAAQQQmDgBkvqJs6VkBBBAAAEEEEAAAQRyIkBSnxNmKkEAAQQQQAABBBBAYOIESOonzpaSEUAAAQQQQAABBBDIiQBJfU6YqQQBBBBAAAEEEEAAgYkTIKmfOFtKRgABBBBAAAEEEEAgJwIk9TlhphIEEEAAAQQQQAABBCZOgKR+4mwpGQEEEEAAAQQQQACBnAiQ1OeEmUoQQAABBBBAAAEEEJg4AZL6ibOlZAQQQAABBBBAAAEEciJAUp8TZipBAAEEEEAAAQQQQGDiBM7MtmjLsqSrszPb3dkPAQQQmHCBylBIIpHIsPVwLBuWh5UIIIAAApMgkMn3V3Kzsk/qoyUVFxcnl8lnBBBAYNIF+vv7xdJWDJ/Si72NaSzHsknvMhqAAAIIIKACmX5/JWNlP/1GR+p5IYAAAnktkMlxKpNt8jpIGocAAggg4DuBLL6bsh6pT4V3/vnnyyWXXCIDAwP26ilTpsgvf/lL+eijj1JtzjIEEEAgLwU4luVlt9AoBBBAAIFhBLJO6s08VO9r6tSpctVVV4lJ5Ht6euxV5eXlYpYfPHhQTp486d2c9wgggMCECyQfp1JVmLwNx7JUSixDAAEEEMilQPJ3UyZ1Z5/UJ5X+pS99Sc466yx59dVX5V//9V/ttZ///Odl/vz58od/+Ick9UlefEQAgYkXSBx6SF1f8jYcy1I7sRQBBBBAIHcCyd9NmdQ8bnPq/+3f/k16e3tjCb2p3CT3Ztnvf//7TNrCNggggMD4CiRdUUxZeNI2HMtSKrEQAQQQQCCXAknfTZlUnXVSn81lgUwaxDYIIIDAeAlkcpzKZJvxag/lIIAAAgggkIlANt9N45bUf/azn5WysjIxU27cl3lvln3uc59zF/EXAQQQyJlAJgfF5G04luWse6gIAQQQQCCNQPJ3U5rNEhZnPac+oRT98Ktf/cq+Kfbaa69NuFH29OnTcvHFF8vx48cTpuYk789nBBBAIB8EOJblQy/QBgQQQACB0QpkPVKfXJH5dZt//ud/lq6uLnsOvZlHb96fffbZ9o/o33DDDQmj+Mn78xkBBBDIBwGOZfnQC7QBAQQQQGC0AlmP1Ke6LGB+j/6tt95KaIMZoTcJ/e9+9zv7r/nd+ra2toRt+IAAAghMhECq41RyPam24ViWrMRnBBBAAIFcCqT6bhqp/qxH6jP9qR3zCzgvvfSSPWJvRsDM79jzQgABBHIhkMlxKpNtTFs5luWix6gDAQQQQMAIZPrd5NXKeqReRvFTO+bL8Be/+IV85jOfsR9E5W0A7xFAAIEJE8jkOJXJNtEGciybsJ6iYAQQQAABr8Aovpvc3bJO6kd7WaC9vd2tk78IIIBATgQyOU5lso23sRzLvBq8RwABBBCYCIHRfjeZNmQ9/WYiAqBMBBBAAAEEEEAAAQQQGL3AmEfq+/v7R18reyCAAAI5EMhkpMPdhmNZDjqEKhBAAAEEMhJwv5sy2ji6UfZJvRbwpS99aTR1sS0CCCCQdwLmZiSOZXnXLTQIAQQQQGCUAlkn9f36E5Xd+jv0O3bsGGWVbI4AAghMvMDSpUulorJyxIrcY1lxcfGI27IBAggggAACEy1grhxn8v2V3A7m1CeL8BkBBBBAAAEEEEAAgQITIKkvsA6juQgggAACCCCAAAIIJAuMa1IfOfaM3P/AFvt/D2z+ibxtJqsWvS0/2bxN9vclV52bz6ZND9yfo/onItYRyux7fZtsefrticccoR0T1YCjz2yRba9N0n88ExUU5ea3wECV3PFwo2xdOiuxnWb5I+tlQVni4rz+NJY2j2XfdCgTUWa6uliOAAIIBExg/JL6k/tl2zMRueXu9XL3XevlrtVl0ndkEjWtPnnt0S3y4DsR+UpkEtsxkVWr+TPHLpMVS2ZMZC1jL3sMJwQzb1suXzn+7KSdFI49eEooSAGrU7oqlsvtVdk8068gI6bRCCCAAAIFLjBuSX2kp08+mFYqsUGsafPk6pmTqBMplWtWr5f138zzhHcMRH3Hjos14zKZ5teTFmOj/Xj1vGnyxms5uBoxhr5gV/8JhHc1S6h+gZT5+f+//NdtRIQAAggEViDrX79JFrOuuEwu+elz8sy+GbLymtLk1RLp2y+PNb0hJ3VN6R8tj21jplc8946zedElNztJuBnZve+AJqwi77w9Vf74nttkhtl/m7O/NXiJs0x0NP6R7fLGB87+M25aL7eM5URCR77dOkq/9jWZuv+4lK1aKfNMOJ51praM6vLsY7f53qul9+Ht8sHceDvN9KAHX58mK75ztUxLGaMT25B/9UrEMc1zL7vNY51cn3GzHMvSWy+T4z91/Ezb576/Tba98b5dbKw/ou6xmL2fy6MtsK+ApI+h+ydJ/fktkZ9sek7e0dPHd5q2yBtuH3vaakqOeabq+/JSueD1k3JSB019fQITJeZPfghEevbICycaZdkNrfLgnp4hjbKmXS/r76uXSpP0F4WladUOKVraKNWH18rOdl1oppo8XicnNm6Rvb0iZvvvLe6WB59si5cV3abjuS6pX1xrL+9o3hyrL1Ud7fr/S97lHc83S8/NtQn1uO2y18VrS9jPbbMpr/rbjXLnlc6GkfB2WbvD00bP/u5bb/1m2aGmxJgjb4nUXtVlmxwpiztl1J7Tjpu3DNNGXggggAACwwuMW1IvgzPktg2ldpJ9/z95kjRTv/W+/NNrEVmhU3OmHn1Gtjz7urw9XxNO/d6beet6sfPwaDK3v2+GzDMJpO5zcupyuUvLFJOYPnpcZqxabyfYJhFu2tcnl5Xul/972s1y9+pxGI039T/2hpTdvF5WaYPMXPUmTSLtKw9J6+wE/zGdp18eTfhTGZt9ktv8qsiKeV+RB9/WbHym0+Zj7/xCLp13q0xLE+OMa1MVbnz65GTfVJlhGmgnFSnqUyN7/yT/B57bIn16YnX3XaViLGP9kaaqhMX2yHmaGLQd05L7s2el3HaPJvZ6kpZwsuCxTvBM7nsTW9k0mXbybdG8SKYlNIYPCEysQOv2Jql5fJksOKyJ+QlPXZqML91UKwc3NtgJe9EVS+WvbiyX/6MlLMvmVGlS3yZFtbVSofuUzy6XvXpSUF6jSXvHE55Com8jIambvlsaGvSkQMt5aPVCqXpxh7RrcpuqjvbmclmqJxMd29bKA3ryULFApzzq/5/YzTPtGm5dija3a9tan2qQhqe0PdGTjAW72xLj9bY6qQ47wd+0ThaYkxfTCI2nomuzNKzREyGToI+2Pc1JZZDQe/V5jwACCKQVODPtmmxWRKe8XGOPwm6RZ0VHpKu0oMhU+do3dSTaJGg6ov+VZw/ISZOhab5u38j63C/s2ixranz6ju5z2eXRUeheHaUtet8e6d1vb6kDY5dcJtZMHcF97jm9kbI0NvIfXT38H88ocWzU39Rxwdfktit0V21n6fy58pX9B5xyzDq9OjAvuk50atHXLntDfmkG76JNHFJhujZfq1c0nnlbbyKeYY+iv9P9NbnmNt07zfZDyk23YLj9k/wvffaklEVtzRWWWH+4o/Hp6ogut6/KpIpB3dL2p7fM4TxNG7x9b/bT/66mlepJXvS/GW9RvEdgQgWmtMvOR2vlB4tmyd5t5gDmvKxQpY7Qh6TmnkZZHF0WCbdIJKxz8UMVOmWnTUJzKiXcHJbaxdVS9mKrVF8pEt4+dMRfdP5+sybR5jUYDkuL1ElFhciRwdR1WFp+RWezPN6m7dGBh+5du6Tl5jp7f9Ou4dalarNIj3MysdK5UiCRTucEwS5x6D927FZYmlu1fk24Iyf3yO4366W6QhtjknqNJ3zYiTO79pi44mUMbQFLEEAAAQRSCWSd1A/7+FpNem/92nHZflxHpE1Sn+6lybV9c+2962WGPZXm2XRbinx6idxyrzO6791o1V3z7FH1+x94Pz6Fw7tBqvfaPrNf7BX/ro4tGpc3qdo8KHL11QfkWR1FL7UOyPuX3xKfUpJqe1HDTF9j3T/TevSqTMoYRtOfmdZltku+KjGafdk20ALmOBWJDP//4MMey1RvsP0F2V2/QW6v3Z5oqYlt02odUfeOJEe6NSlfJtWlXTJ9elh2P9Eq1k0LpUJP/mskLI+bXFdz34xfKeqwpmnGn+0rZXnXy7rVolNlGqTdKpcb7l6Wbemj3y9Fe4b/0hh9FeyBAAIIFKJAJt9fyXF5v46S143qc+TY/vgvlNjzvd+XqaXphrGdohNuru07Lu84U7yH1mumXxT9Ug5oIpzqVXr1Sln5tanSdzL1+lT7DFlm6vjgDdl/xFnTt++A/ML98o3W/050nZku8saxS+RSM3Kf7jVMm0svv0wix1+X1/V+gbnzo0bDbJ+yCu/otdlgtPunKtSUOU1HxKODiZEjx+MGSdvHY9B5/dFR/9H2Z8aeZmR/Wln8Kk5SW/iIwIQKWD2yp6lZpq9aLjXR84NIZ5d0RWplkU65SXjptq0HReas0NH2g63SW6Sf36rU0fqQRA7pZ/eYkrBT6g/p6jDLu0P1snCWU1hFXV1Cu4Zbl6rNVmVIKjs6pVuLs0qrpXZ66va4S9121VQ79ZvpN4u+qlcYzMh90muktqZqT1IRfEQAAQQQyFAg65H65PKtK6ZJ7yb9jfrol5Z906t9w2z6RNuaOU/+w/7t8phOwi+64BK5ZGpyqdHPZr7+qpN6E+t2MfP1zcuUv27GcXnAnbpj3zyrCbL7vWJu6HRvotVTF/smzZI/cm5IdbdxinL+1Tpu/WNT3hZ5+2c6q0ZvlP1K5HhsnVO/xqfrLJ0eMnf1SvueAG8RCe/TtNn+NZ7Sy+RSecO+H+A2ty3ptv9WQqnxD5qAX67T8p891ifzjPNo94+XFH+nZV6tc/5dg6JLL0n/c6BmClLZFnl+8GZx79VN25/atktnPCfPeW6UTesZ/e8n3ijtUvPLSmrGTbJeFd7nUsBMMXniZ7Vy903RWnVazo57m/VG2Q3SWO8sc28w7dF59ZbeuHrIHpbXyS36OaSfD26Mni1n2vBh6tj5WFgeWrlV5mhZ5ubTFis6dcZMFxpmXco2P/mC7NIrEfc8rIF0hiVsptAM94q1a6s0muOXTpV5XufTJ1yxcPfPpj2eaU5uMfxFAAEEEBhZwFqyZImdVu4/EJ0/nmKfUwMDUlJSIp/098fWmssCXZ2dsmPHjtgyX70x8+4f6ZV5Kab85E2cpo0/FrntO/MmJeE1v1z0y6/Ef8lnQlzsk7Nnpei2YW5KnpCKKbTQBZYuXSqVIR0hz2D6jTmWFRcXF2TIzo2qIWnWX99JmVgXZFQ0GgEEEAiuQL/m2+m+v87R7ypvPm6U5s2da2ON2/Qbv9Efff2NxN/dz8cAzb0Llx+Xph+PYt79eMVhpiD1fM25eXi8ykxRztGfbNcrGnOdnxVNsZ5FCARdYNYi/VnN6PSZoFsQPwIIIBBkgXGbflPwiN7pOhqM86s40V/syePgzP0E63PZvqjTP72vU5BWrpzwKwSxnzzNZYzUhUA+C0T0Zta7NkhdKNpI+zfy9+j8/XxuNG1DAAEEEJhogTFPvynUS9YTDUv5CCAwuQLDXb70tsydSsixzKvCewQQQACByRIY7vuL6TeT1SvUiwACCCCAAAIIIIBADgS4YJsDZKpAAAEEEEAAAQQQQGAiBUjqJ1KXshFAoPAEBqrkjocbZevSWYltN8sfWS8LyhIXT9qnfGvPpEFQMQIIIICAESCp578DBBBAIFlAf3u9q2K53F6V4sEJydvyGQEEEEAAgTwQIKnPg06gCQggkH8C4V3NEqpfIGXuA+Lyr4m0CAEEEEAAgZgAP2kZo+ANAgggEBeI9OyRF040yrIbWuXBPUOfBms/9Ok+/Y14k/TbPyu5Q4qWNkr14bWys10Xmukxj9fJCX3a6t5e/ZncadfL9xZ3y4NPtsUr0XcJ5ejnQ02J+0feEqm9qkua9OFSR8qu16fYOnWaJ8l6W5VQTrQ97aedNnjL4AFVCfx8QAABBHwjwEi9b7qSQBBAYLwFWrc3Sc9Ny4bOo9eEfemmWjl4X4M0NDTIdx8VWXRjubS3hKW2tspuRlFtrVSc0IR8drn9ubymVqSjO7GJphxN0ju2rbXLWbuxWaavWhevLxKSiq4npGGNPi1WE3TvtjukVmrcqwhp2mNX5i2DI36iP58QQAABHwkwUu+jziQUBBAYZ4Ep7bLz0Vr5waJZsnebm0Hr6HqoUkfoQ1JzT6MsjlYZCbdIJKxz8UMVOmWnTUJzKiXcrEn+4mope7FVqq8UCW/3jq1Hy7HC0tyqZWvCHTm5R3a/WS/VFTqXX08IROf2hw87+5g6Kzqb5fE23VZXd+/aJS0319m1p2uPlphQxjjrUBwCCCCAQB4JkNTnUWfQFAQQyD+BwfYXZHf9Brm9dnti4zQZb1qtI+je0e9It7TIMqku7ZLp08Oy+4lWsW5aKBWlIjUSlsdNfj5R996mao84Vw0SG84nBBBAAAE/Cni/jvwYHzEhgAACYxOwemRPk5kWszw23SXS2SVdkVp7yk1C4bpt60GROSvqpOJgq/QW6ee3KnW0PiSRQ/o5KaF3y6mpdlaYefGLvhqWFjNyn/Qy23aH6mXhLGfbirq6kduTVAYfEUAAAQT8K8BIvX/7lsgQQGCcBMy0mCd+Vit33xQtUKfl7Li3WW9a3SCN9c6ySHi7rN3RJj06r966uVYO2cPyYn8O6eeDGxOn3th7xcrZKo0mj9fpNs/rjbUJo//RKsVMBXosLA+t3CpzdJm5UbbF0nn65hUrJ6k9nilDzob8iwACCCDgVwFryZIl9pDQ/gMH0sZ4amBASkpK5JP+/tg2lmVJV2enFBcXx5bxBgEEEMgXgX49XlWGdIQ8MnTU29tGjmVeDd4jgAACCEy2wHDfX+do3u3Nx01b582dazeZ6TeT3XPUjwACCCCAAAIIIIDAGAVI6scIyO4IIIAAAggggAACCEy2AEn9ZPcA9SOAAAIIIIAAAgggMEaBrJP6pB9xGGMz2B0BBBAYf4FMjlOZbDP+LaNEBBBAAAEE0gtk892UdVKfvhmsQQABBBBAAAEEEEAAgVwKkNTnUpu6EECgcAQi5XLD+kZpbIz+767r9UmxOWr+QJXc8ch6WVCWo/rcasZS71j2detP/jsRZSbXwWcEEEDAJwL8Tr1POpIwEEBg/ATMQ6DW31cvHdvWSkO7k8mbZQv0IVF72nKV2Y9fPJSEAAIIIOB/AZJ6//cxESKAwGgEdIT++hVOQr8zmtCb3c0DqPacHE1BbIsAAggggEDuBEjqc2dNTQggUAACVmm11F4YluZWHZFPM0Gx+tuNcueVTjDuk2TFTBV5vE46nuuS+sXOk147mjfLg3uiT5I103nu2iB1IWe/Q01rxZw0uFcFKs0FgKKwNK3aIe3pnEaoI2VZGoN3uXkSbY8+4faEPrl2b2+KdZ66vfvF2qblpYzfs1/y24RydKUbu2sWeUuk9qouO/YjZc5VEuNht9VTWEI5rtVpx91bRson8nrK4S0CCCDgRwGSej/2KjEhgMCYBCIdndI9zE8PtD7VIA1PaRXRJHvB7jbZe0I/R0JSN323NDTskKIrlspDqxdK1YuapFtOQj87vFkatkSTfNNC3X/pplo5uLHBTrDNPn91Y7m0N5uVaV7p6tDkNnVZ5bI0OpXoAT2JqFiwXu7WhNk0165/uHWp2qYnKWnjT9VkE6OnDjsx37ROFpiTiqhZRZe6rFEXk6B7th3S1lTtMVZqEisjzYlYqqaxDAEEEPCTAEm9n3qTWBBAYFwErOmaJGri25smsbcT9pXOaLxEOp0E2dRsdUqzJvjmNRgOS4vUSUWFyJHB6Oj//Zq4epJOK1QplZqQ1tzTKIvtvTQ/DbfoOzNsn+aVto7UZVmhCqnobJbHzb0AGk/3rl3ScnOdXbipf7h1qdvW45ywpIo/RZPtGK34lQ8zjWn3m/VSXaGNMUm9xhM+7JzoZNceE1e8jBRNYBECCCAQCAGS+kB0M0EigECmApG+VgmfqJea6p3S7plT7+5vRprXrRadKtLgjMDfvcxdld1fTXibVutovifZF6kat7KsaXpWke0rRdvGPf7RtC1Fe7K2Gk29bIsAAggUgEDC10gBtJcmIoAAAhMrYPXI3uawzFmxVW6vig/Vm2T2+lmWWJUhqYxOz7Hn308fuTnOiUKtLNKpNd5XpLNLuiJDl3u3yfR9urLM8u5QvSzUtptXRV2d1EQvBIy0LlXbRhu/264a/eUg8zKOi76qVzHMPQtJr2zak1QEHxFAAIHACjBSH9iuJ3AEEEgnMHhkh6zd2Kk/a7lVGt3cs6tZNt0fkUF5QXbVb5B7Hq4X6QzrqH66UjzL9UThpY1NEtq+QRp1N/NybhZtlx33Nms98eX2jbfb3EqdbTP6d0qasna0yc7HwvLQyq0yRwsyN5+2WNGpQ7rPcOtStu3JUcYfa1fUUqfKPK/z6ROvTEQjzKY92VhlBMpGCCCAQGEJWEuWLLG/PfYfOJC25acGBqSkpEQ+6e+PbVNkWdLZ2SnFxcWxZbxBAAEE8kWgX49XoVBIBiPDJ8hBO5aZkfL1m0LSbH5lh2u1+fKfK+1AAAEEYgLDfX+do3m3Nx83O82bO9fel0N6jJA3CCCAgP8FZi2qj00f8n+0RIgAAggER4DpN8HpayJFAIEgCiT9Pr7ze/N7pJchnSD+10DMCCDgYwGSeh93LqEhgAACYubzb2mQl7wUJPReDd4jgAACvhDg0O6LbiQIBBBAAAEEEEAAgSALkNQHufeJHQEEEEAAAQQQQMAXAiT1vuhGgkAAgfESqP52Y8Lv08tAldzxyHpZUBavwTxRduvSWfZvrt+VtC62VYr9YuuS34xm2+R9c/E539uXCwPqQAABBPJcgKQ+zzuI5iGAQG4F2lvCUlsbf6KrFaqUykhIamfHHxxVVlmpP+nbLZGTe+SBNVtkb6+2kcQ3tx1FbQgggAACCQIk9QkcfEAAgaALRLo6pStUIWXRn7cvr6m1H9gk0yscGv01meorRcKHe4JORfwIIIAAAnkkwK/f5FFn0BQEEJh8gUhfq7TIMqku3yN7e5wEvnNblxTdXCtVj7dJ++lyCV3YJYe6ta2ndWrO43Vy4p5dcuF9K6RmUKTmnkapD2+XtdEnnVrl18td9+pvw+tJQkfzZnlwj3MyYD8E6r7ocn3Ka+wUwYz4a5mRt0Rqr+qSJn1IVNHSRrlTTyTMy37irD4l1kwTqj68Vna2a8HRfU7ok1rNVQNT9vcWd8uDT7Y5O0X/9dZpFjlPtY3v763zSJk+pCpV+3S/hHKKwnYb26MW3jJ4uFUUnj8IIIBADgSyH6nXJ8ryQgABBPJaIJPjVPI2+hOQ3SdCEqrQY9ypcqm0wtLa1y4tb1VKhQ7WF9XWyuy3WhKfxlrULk8ub5KWok55flODrNWk237ptJ36xSLb1zTId7eFZfpNC6VKE3+ThC/VhLlj21ppaGiQHVIrNdErA+5+FV1PSMMa56mvrU812Ns1rGiSw1cusuf3e6cJmTZVnNCTgOgUIXN1QTrMWYfnlVTn2o3NMn3Vuvi9AtrWWJ2aoKdtnylnU60cvM9p03cfFVl0Y3RqkreM7L9dPI3mLQIIIBBQgeTvpgwYOOxmgMQmCCAQLAE3YTbJco0mx72a33d3OEmzO58+IxFLk/zt+qAn3X8wHNYrAM6JgZmnX9HZLC+0OZl8965d0uIdJ9H9vNN7zI25jY2N0tikVwOiyb93mlDVnEoJN4fFmlMtZYOppwfZ9wboCUpLq1OAuR9g95vRkxcTjKfO4drn3mOwWK9ImDY9tLJWQjpdyX55ynAW8C8CCCCAQK4EmH6TK2nqQQCBghFwE+YrKjRZDrfb7e7RG2ilvlqqQzqffntsssyEx2SmuqxbLTrFpUHarXK54e5ldp2xaUKlXTJ9elh2P9Eqll4JqCjVKUASlsdNE70nCuPZUj05aFrtXEWIFxu/uTi+jHcIIIAAArkSYKQ+V9LUgwACBSNgJ8yRell+s0hnd3Rku7NLeubUS930LulOmtky2sAiWlZ3qF4WznKy7oq6utgIfHJZVmVIKjs6pVs3tUqrpXZ6dAudJtR6UGTOijqpONgqvUX6WacI1S4OSeSQfk5K6E2dXRG98lDtrDAnC4u+Gh+599Y7XPvccmJTbrw78h4BBBBAYNIEGKmfNHoqRgCBvBUwCfOhTqkz8+ndEe8pZl69yOyipPn0bhBm/Zsr5M6kG2Xd1Ql/ddudj4V16spWmaMrOvRG2RZL58GneA22vyC76jfIPQ/X6xlGWMI6d959masHlt7Ae8gelhcxn0P6+eDGFFcStM4d9zbrza9bpdGcp5ipQXpjbcqbWYdrX6ycDdKoTTIv++bd6I3BzhL+RQABBBDItYC1ZMkSexhq/4EDaes+NTAgJSUl8kl/f2yboqIi6ezokOLi4tgy3iCAAAL5ItCvx6vQ9OkyOGjuTE3/4liW3oY1CCCAAAK5Fxju++sczbu9+bhp3by5c+1GMv0m931FjQgggAACCCCAAAIIjKsASf24clIYAggggAACCCCAAAK5FyCpz705NSKAAAIIIIAAAgggMK4CJPXjyklhCCCAAAIIIIAAAgjkXoCkPvfm1IgAAggggAACCCCAwLgKkNSPKyeFIYCAbwQi+qCn9c5TU+2nud51vZQ5P1k/8SEOVMkdj6yXBWUTX9W411DIbR93DApEAAEEcifA79TnzpqaEECgQATMg5nW31cvHdvWSkO7k8mbZQv0wU172nKV2WeIZZLox+vkhP7m/N7eDPdhMwQQQAAB3wmQ1PuuSwkIAQTGJKAj9NevcBL6ndGE3pQXOblH9pwcU8nsjAACCCCAwIQJkNRPGC0FI4BAIQpYpdVSe2FYmlt1RD7NBMXqbzfKnVc60dlPU93RJhIdMe94rkvqFztPh+1o3iwP7ok+3dVM57lrg9SFnP0ONa0Vc9LgXhWoNBcAisLStGqHtKeDSy5j23YpWrVcavT5WjXuk2y1LQllalluXbE2PhqWOavqxdSZ0EZPvSOVEdGn69Ze1WW390iZc2XDLk+fjut9nm1COW58p52rC94yUj7Z1tMe3iKAAAIIDC9AUj+8D2sRQCCAApGOTum20gfe+lSDNDyl66OJ/ILdbbL3hH6OhKRu+m5paNghRVcslYdWL5SqFzVJt5yEfnZ4szRs8aS8uv/STbVycGODPXXG7PNXN5ZLe3PquouqFsqiru1ahp5EuK/lTSLe6TemzOjUoQfck4ZN62SBmZ4TbWP94rBsWtMgfaWajG9aJgsOJ03dyaCMii6NZY3GYhJ0T30VC9bL3XqyYKoyPmnjU6tYGWlOntwQ+YsAAgggMLIASf3IRmyBAAIBE7Cma8KpiWlvmsTeTthXOqPxEul0ElhjZHVKsyb45jUYDkuL1ElFhciRwejo//2aBHsSWCtUqaPlIXuUfbG9l54XhFv0nRm2H/qKdOnJxpzlsq7TcwUgaTO7TCt+pcFMG9r9Zr1UV2gwJtPWNj6/fY8Tm3ddb7zOTMoIH3ZOTsy2FZ3N8ri510Cr6N61S1purrNbNWx82g63jKQQ+IgAAgggkIUASX0WaOyCAAL+FYj0tUr4RL3UVO+Uds+cejdiM51k3WrRaScNzgj83cvcVdn91QS8abWO5nuSfZGqlGWZBP2B7+wRMxre2BhyptUcSrlpZgt1Ok/FdN30cGabZ7XVKOLLqnx2QgABBBCwBRK+RjBBAAEEAi9g9cjeZp1zvmKr3F4VH6o3yfz1syyxKkNSGZ2eY8+/N0nxCC/nRKFWFunUGu8r0tklXZGhy73bpHrfvXeL3P98p1RWDv3NS7fMGv2lHvMy7V70Vb1qYO4RMC+9MlA722mHe/9AbJ2zhV58cNqVtozodnZxum13qF4Wqo15VdTVSY1bVZbx2QXxDwIIIIDAqAQYqR8VFxsjgEAQBAaP7JC1Gzv1Zy23SqM7K6WrWTbdH5FBeUF21W+Qex6uF+kM66h+BiJ6ovDSxiYJbd8gjbqbeTk3r7bLjnubtZ74cvvG221upc627r8J037sm051CsyUHml5c4Xc6blR1ikz2nYz3Ubn08euBOjn7spl9ki/3Y7H1sbXuRVNcduVpgx3O/NXt935WFgeWrlV5ujHDr1RtsWKTk2KlZNZfN5ieY8AAgggMDoBa8mSJfa3x/4DB9LueWpgQEpKSuST/v7YNkVFRdLZ0SHFxcWxZbxBAAEE8kWgX49XoenTZXBQfxpmmFegjmV64yq/aT/MfwysQgABBPJAYLjvr3M07/bm46a58+bOtVvN9Js86DyagAACCCCAAAIIIIDAWASyTuotKz7XdCwNYF8EEEBgogQyOU5lss1EtY9yEUAAAQQQSCWQzXcTc+pTSbIMAQQQ8KOAznF/ck3aR1v5MWJiQgABBAIjkPVIfWCECBQBBBBAAAEEEEAAgTwXIKnP8w6ieQgggAACCCCAAAIIjCRAUj+SEOsRQCCwAtXfbpStS2dlFb/5ffi7HlkvC4b+lHxW5fliJ/PrO5j4oisJAgEE8k+ApD7/+oQWIYBAHgiYpHzhhfrQpspFmSXmSQmr/fTXNVtkb28WwSSVlUUJzi7jVU7WDWBHBBBAAIFcCZDU50qaehBAoKAEymtqJXLoBXnxkMSewFpQAdBYBBBAAIFACfDrN4HqboJFAIGMBCLlUn2lSHh7j/QMhsVaWS1lL+2RXveXfHX9DXdtkLqQU9qhbdulaNVyqdHnXNW4T3bVp8LaD3q69wkpWr5BKnatlZ3tzpNi7SfDLu7UJ9TukdDtjXKn1mVe7tNk79i+IrGsHW1irhysv69eKk0R9tNkdyQ+CTaTNiWXo0U5T7bVQs2o/uN10vFoWOascurpaN4sD+7Rp9YmvRLakqKMyFt6InRVlzSt2iFHyuLtNk+b9ZaWUI4b02mnHd4yYk/DTWoHHxFAAAEE4gIk9XEL3iGAAAK2gFVaLTUSlsc1A41Iq7TIMqku3+NMpYkmz7PDm6VhiydFXd4koknxiY3ulJsqR9Pqkb3NYfnBnCpN6tvsZVV6FeBQ8077JKH3qQZpeEoXR5PqBbu3yJPJZem6pZtq5eDGBrsN5qTgr24sl3ZPwl1UtVAWdW3XNjl12BWlKkdPDDq2rZUH9ATDTqo3rZMFps0ndI9ISOoXh2XTmgbpK9VkfNMyWXDYjccu0W7n0hHKqOhSmzVqYxJ0z7YVC9bL3Xr+YKoy8aaMqdlpR6wMridH4fmDAAIIDC/A4XJ4H9YigEAABZypN63OyLwm5a0HReoXOTfMmoS/Vufa737Rk9CPYDQYDsvhq2qkSkfyTTI7+wvN8kJbfNS+sbFRGpt0dN5ZNKQ0K1SpI/QhWaxXAcy2D62slVCoImG7SFendM9ZLuuuL09Y7v1gl2PpfQKtTkVm3v/uN0MSqohegrA65fntzhWJIeuiBWVSRviwY2O2reiMx9q9a5e0uFUNF5O2wy3D237eI4AAAgikF2CkPr0NaxBAIIgCmnQvvCkk0yMbpLHeA1CkSfkTbXLEsyjjt/rQpxd+WidLdXS9N1InFQefsE8YzEj5utWi01QapN3SKT13L0tfpCbjTauTptx4trZvzP3OHjGj4Y2NIWdajd4PkPVLr0hUTNe9D2ddwsg7powpeoVj5L3ZAgEEEEDAI8BIvQeDtwgggEBRba3U6Ojypu/otJiG6P++s1l2ndDl1ZZE+lolrO8XaYI+mldPi87Nn7NQbryyKzbKb1WGpLJDR9h19Nq+AmCS6BSvSGeXdEUyq7N77xa5//lOqawc+luabjkmDvMyJxWLvhofuTfTb2pnO3G5VyTcUX23WSOW4W6of8223aF6WTjLqa+iri52NcItZ7SOnuJ5iwACCCDgEWCk3oPBWwQQQMDMd+/QX72J3RRrSMwUnEOdcletMy/+pY1NEtoeH8l3bjZtl5Y3V8idnhtlvZrmZKAlUm/Pe98RHU4ZbH9BdtVvkHse1ksCnWE9WYjuoSP7CWXpDa477m3WG2Xjddo31epy92XffKvTcuyXfdOpToGZ0pOmnK3SaGbgmOk2Op8+diOqfu6uXGaP9JtyDj22Nr7OLlj/0bY5bUlThrud+avb7nwsrNOFtsoc/WhulG2xom2MlZMUk95gzAsBBBBAYPQC1pIlS+wj6P4DB9LufWpgQEpKSuST/v7YNmeccYZ0nDghxcXFsWW8QQABBPJFoF+PV9MvvFA+/fTTYZvEsSzKo9OO7F/rid3oOywbKxFAAAEEJkhguO+vczTv9ubjpgnz5s61W8L0mwnqEIpFAAEEEEAAAQQQQCBXAiT1uZKmHgQQQAABBBBAAAEEJkiAOfUTBEuxCCCAQEEJ6Bz3J9e0F1STaSwCCCCAQFyAkfq4Be8QQAABBBBAAAEEEChIAZL6guw2Go0AAggggAACCCCAQFyA6TdxC94hgAACtsDQn4dM/9CnSSPj12omjZ6KEUAAgXwUIKnPx16hTQggMGkCCU951WuZ5vOC2Za0H7yCn3yctF6hYgQQQACBkQSyTuqd5wOOVDzrEUAAgckTyOQ4lbyN9ymvpuWRk3tkz8nJi4GaEUAAAQSCJ5D83ZSJQNZJfSaFsw0CCCBQaAKD4bC0rFohy25olQf36FNZzctMddm+QmoGRWrcJ8bq01zNKP76++qlMvoQVOfJsvohOjWm49GwzFnlrO9o3hwvzynV/nekMiJvidRe1SVNq3bIkbJ4febprNHWDS3HfqKsThk67TxQyltG7OmxnjbwFgEEEECg8AW4Ubbw+5AIEEBgPAXsn3bcLIdrN0hjY6PcXqXjJWbZ8iZpKeqU5zc1yFpN6E3ivlQT+o5ta6WhQZdtbJbpq9bJgrJoYyIhqV8ssn2Ns67opmXxdW57MyijousJaVjjJOje+nZIrdRETybstmyqlYP3Ndht+e6jIotuLHdq0XbEyuCI78rzFwEEEPCdAId433UpASGAwJgFrB55aUs0UV+51Unskwq1QpVSaemofquTWZtpOrvfDEmoInrR1NITgO17pFc/DlkXLSuTMsKHnfF4s21FZ7O80ObU171rl7S4VZm2aPK+WK8imBORh1bWSihU4dSi7XDLSAqBjwgggAACPhJg+o2POpNQEEBgfAVMMv7Ez2rlrtoq2XnIHRbPoo5IuVRM1/0OZ7FvprvoCUbT6uRf6anKdG+2QwABBBAocAFG6gu8A2k+AgiMr0BRlf7aTWwKTblUzwlJZ2f3kEoinV3SFdEpMNXOcLmZG7/oq/GRe9GR89rZzhQYq7Raai/0rIuWNmIZnlrNtt2helk4y6mvoq4uNv3GLSc25cazH28RQAABBIIhwEh9MPqZKBFAIEOBwUNdcuF2ncYSHZiPhLfLWnPD7JQeaXlzhdzpuVF2x73NeqPsVmdbM91m4xaJ3Yiqn7srl+l0mJBd86HH1sbXuW3RufrDluFuZ/7qtjsfC+vUmq0yRz+aG2VbrFpni1g5eh9AvbPIbve2MVxdcIrhXwQQQACBAhGwlixZYh/19x84kLbJpwYGpKSkRD7p749tc+YZZ8iJEyekuLg4tow3CCCAQL4I9Ovx6sILL5TTn346bJMm5FgW/fWbE5rk7+0dtnpWIoAAAgggkCAw3PfXOZp3e/Nxs+O8uXPt/Zl+k8DIBwQQQAABBBBAAAEECk+ApL7w+owWI4AAAggggAACCCCQIMCc+gQOPiCAAALjIGB+135N+zgURBEIIIAAAghkJsBIfWZObIUAAggggAACCCCAQN4KkNTnbdfQMAQQQAABBBBAAAEEMhMgqc/Mia0QQCAoAuaXax5ulK1LZ6WMuGLBeml8eH38t+xTbWXKeGSEbVLtVyjL/B5fofQD7UQAAQQ8AiT1HgzeIoAAAraA/sZ8V+WioYm7JrMLb3J+dz6nUiTROeWmMgQQQKAQBUjqC7HXaDMCCEy4QFenxJ4I61ZWVFsrsw/qk2Gdh7q6i/mLAAIIIIDApAvw6zeT3gU0AAEE8lGgY9cusTYvlKoXdzhPgo2Uy4LFldK8bZdceFVdrMnV326UO690PtpPcd3RFltnvzGj7NtXyOxD+mRaXWdNu16fQlsvleaxf0VhaVoVLd/dS+u54a4NUhe9IHBo23YpWrVcagZFajxPs00oR/c91LRWdrZroaa+x+uk49GwzFnl1NPRvFkeNE/FTXqNVEbkLT2xuarLbuORsni7zdNsvaUllOPGdNpph7eM2NN2tR0J++hnt/3Gs/pwYizuQ7zMPt9b3C0PPhZxYnyuS+oXO0/VTRdjUsh8RAABBHwrwEi9b7uWwBBAYEwCRe3S8v/USk21MyxvlVZLjYSl9URiqa1PNUhDg/5vRZMcvjJpyo5J0DeukMFta+2E3iTcSzfVysH7nH2++6jIohvLEwosqlooi7q2O2VquTuPtMmTxJLLmgAAHxJJREFUy5ukpahTnt/UEC9HTww6tFxT99qNzTJ91br4dKFISJNdke1rnHVFNy2Lr3NrM20ZoYyKriekYY2edGiC7t12h6iL/SxyLWy4mLQdsTK83zbD1N3eEpba2iq7lebKSIV61852jMprNIHv6HYi0LLrprfY8X93W1im36QnYHriwwsBBBAIqoD3MBtUA+JGAAEEUgq07W6WUP0CKdMEdtaieuls3iu9SUfNoiuWSmNjozQ2rYgnutHS5ty5QWaHNzsj6LrMClXqCH1IFuuIu9nnoZW1EgpVJNQd0Xk/3XOWy7rrE5N970Z2OZZOA2p1MuvIyT2y+82QhCqi84L0noDnt++RXv04ZF20oEzKCB92xuPNthWdzfJCm1Nft17FcKcgDRuTtsMtI9P2m/i71MSYV82plHBzWKw51VI2WC7VekUkVp6W3bzbuSoyGFYL0TYmUnqr5D0CCCDgewGm3/i+iwkQAQSyFYj0tWqyuExm68Bx7YXN8vhOJ6l1yzPTQdatFp2e0iDtlo7K373MXaXZtM6f0cTTSdo9k1U0GW9anTTlJr6XnYQ/8J09Yv/KTmPImZZyyLPBaN/q1YKK6brT4dHuOIrtU8bkjLaPohR7U9e8urRLpk8Py+4nWsXSUfiKUp1+pFdKHvdQjrZstkcAAQT8LJA05uTnUIkNAQQQGKWA1SN7n9d52yvrJXKo1R759pZgVYakskNH1nVE3EzPqTXJs/vShP7Q41vkicH4qHuks0u6IrVDpty4u3j/du/dIvc/3ymVlWXexfZ7t5zY1CA9uVj01fjIvTmhcKes2O260LMuWtqIZXhqNdt2h+pl4SznSkBFXV3sqoRbTvI0Is/uQ966+6Rsv5q3HhSZs6JOKg6qeZF+fqtSaheHUvbBkMJZgAACCARUIPuReit6mTegcISNAAIFIJDJcWqEbQbbX5BdOo2780UdIk4aBrHX1W+Qex6u1w3CEk6ab2+EWndulgq98bVxTrNsun+P7Li3WW+U1c+6i3kl31xrpvOYaTn2y77pVOud0iMtb66QOz03yjrlbJVGc/FATyCe37jFuaHX7KifuyuX6RQf527bQ4+tja+zC9Z/prRH25KmDHc781e33flYWNu1VeboR3OjbIsVbWOsnKSYtiVe1fAWN1LdPTqv3rq5Vk+KnGF58zmknw9uZJg+wZEPCCDgX4ERvptSBW4tWbLEPvLuP3Ag1Xp72amBASkpKZFP+vtj25x55ply4l/+RYqLi2PLeIMAAgjki0C/Hq8u/MIX5PTp08M2yXfHMr0J1fz6jfuLMcMGz0oEEEAAgbwTGO776xzNu735uGn8vLlz7RiSxp3yLi4ahAACCCCAAAIIIIAAAiMIkNSPAMRqBBBAAAEEEEAAAQTyXSD7OfX5HhntQwABBIIooHPcn1zTHsTIiRkBBBAItAAj9YHufoJHAAEEEEAAAQQQ8IMASb0fepEYEEAAAQQQQAABBAItQFIf6O4neAQQQAABBBBAAAE/CJDU+6EXiQEBBBBAAAEEEEAg0AIk9YHufoJHAAEEEEAAAQQQ8IMASb0fepEYEEAAAQQQQAABBAItQFIf6O4neAQQQAABBBBAAAE/CJDU+6EXiQEBBBBAAAEEEEAg0AIk9YHufoJHAAEEEEAAAQQQ8IMASb0fepEYEEAAAQQQQAABBAItQFIf6O4neAQQQAABBBBAAAE/CJDU+6EXiQEBBBBAAAEEEEAg0AIk9YHufoJHAAEEEEAAAQQQ8IMASb0fepEYEEAAAQQQQAABBAItQFIf6O4neAQQQAABBBBAAAE/CJDU+6EXiQEBBBBAAAEEEEAg0AIk9YHufoJHAAEEEEAAAQQQ8INA1km9ZVl+iJ8YEEDAxwKZHKcy2cbHRISGAAIIIJCHAtl8N2Wd1Odh/DQJAQQQQAABBBBAAIFACpDUB7LbCRoBBBBAAAEEEEDATwIk9X7qTWJBAAEEEEAAAQQQCKQASX0gu52gEUAAAQQQQAABBPwkQFLvp94kFgQQQAABBBBAAIFACpDUB7LbCRoBBBBAAAEEEEDATwIk9X7qTWJBAAEEEEAAAQQQCKQASX0gu52gEUAAAQQQQAABBPwkQFLvp94kFgQQQAABBBBAAIFACpDUB7LbCRoBBBBAAAEEEEDATwIk9X7qTWJBAAEEEEAAAQQQCKQASX0gu52gEUAAAQQQQAABBPwkQFLvp94kFgQQQAABBBBAAIFACpDUB7LbCRoBBBBAAAEEEEDATwIk9X7qTWJBAAEEEEAAAQQQCKQASX0gu52gEUAAAQQQQAABBPwkQFLvp94kFgQQQAABBBBAAIFACpDUB7LbCRoBBBBAAAEEEEDATwIk9X7qTWJBAAEEEEAAAQQQCKQASX0gu52gEUAAAQQQQAABBPwkkHVSb1mWnxyIBQEEfCiQyXEqk218SENICCCAAAJ5LJDNd1PWSX0eO9A0BBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwqQ1PuxV4kJAQQQQAABBBBAIFACJPWB6m6CRQABBBBAAAEEEPCjAEm9H3uVmBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwqQ1PuxV4kJAQQQQAABBBBAIFACJPWB6m6CRQABBBBAAAEEEPCjAEm9H3uVmBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwqQ1PuxV4kJAQQQQAABBBBAIFACJPWB6m6CRQABBBBAAAEEEPCjAEm9H3uVmBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwqQ1PuxV4kJAQQQQAABBBBAIFACJPWB6m6CRQABBBBAAAEEEPCjAEm9H3uVmBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwqQ1PuxV4kJAQQQQAABBBBAIFACJPWB6m6CRQABBBBAAAEEEPCjAEm9H3uVmBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwqQ1PuxV4kJAQQQQAABBBBAIFACJPWB6m6CRQABBBBAAAEEEPCjAEm9H3uVmBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwqQ1PuxV4kJAQQQQAABBBBAIFACJPWB6m6CRQABBBBAAAEEEPCjAEm9H3uVmBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwqQ1PuxV4kJAQQQQAABBBBAIFACJPWB6m6CRQABBBBAAAEEEPCjAEm9H3uVmBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwqQ1PuxV4kJAQQQQAABBBBAIFACJPWB6m6CRQABBBBAAAEEEPCjAEm9H3uVmBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwqQ1PuxV4kJAQQQQAABBBBAIFACJPWB6m6CRQABBBBAAAEEEPCjAEm9H3uVmBBAAAEEEEAAAQQCJUBSH6juJlgEEEAAAQQQQAABPwpkndRbluVHD2JCAAEfCWRynMpkGx+REAoCCCCAQAEIZPPdlHVSXwAeNBEBBBBAAAEEEEAAgUAIkNQHopsJEgEEEEAAAQQQQMDPAiT1fu5dYkMAAQQQQAABBBAIhABJfSC6mSARQAABBBBAAAEE/CxAUu/n3iU2BBBAAAEEEEAAgUAIkNQHopsJEgEEEEAAAQQQQMDPAiT1fu5dYkMAAQQQQAABBBAIhABJfSC6mSARQAABBBBAAAEE/CxAUu/n3iU2BBBAAAEEEEAAgUAIkNQHopsJEgEEEEAAAQQQQMDPAiT1fu5dYkMAAQQQQAABBBAIhABJfSC6mSARQAABBBBAAAEE/CxAUu/n3iU2BBBAAAEEEEAAgUAIkNQHopsJEgEEEEAAAQQQQMDPAiT1fu5dYkMAAQQQQAABBBAIhABJfSC6mSARQAABBBBAAAEE/CxAUu/n3iU2BBBAAAEEEEAAgUAIkNQHopsJEgEEEEAAAQQQQMDPAiT1fu5dYkMAAQQQQAABBBAIhABJfSC6mSARQAABBBBAAAEE/CxAUu/n3iU2BBBAAAEEEEAAgUAIZJ3UW4HgIUgEEChkgUyOU5lsU8gGtB0BBBBAoPAEsvluyjqpLzweWowAAggggAACCCCAgD8FSOr92a9EhQACCCCAAAIIIBAgAZL6AHU2oSKAAAIIIIAAAgj4U4Ck3p/9SlQIIIAAAggggAACARIgqQ9QZxMqAggggAACCCCAgD8FSOr92a9EhQACCCCAAAIIIBAgAZL6AHU2oSKAAAIIIIAAAgj4U4Ck3p/9SlQIIIAAAggggAACARIgqQ9QZxMqAggggAACCCCAgD8FSOr92a9EhQACCCCAAAIIIBAgAZL6AHU2oSKAAAIIIIAAAgj4U4Ck3p/9SlQIIIAAAggggAACARIgqQ9QZxMqAggggAACCCCAgD8FSOr92a9EhQACCCCAAAIIIBAgAZL6AHU2oSKAAAIIIIAAAgj4U4Ck3p/9SlQIIIAAAggggAACARIgqQ9QZxMqAggggAACCCCAgD8FSOr92a9EhQACCCCAAAIIIBAgAZL6AHU2oSKAAAIIIIAAAgj4U4Ck3p/9SlQIIIAAAggggAACARLIPqm3rAAxESoCCBSkQCbHqUy2KcjgaTQCCCCAQMEKZPHdlH1SX7BKNBwBBBBAAAEEEEAAAX8JkNT7qz+JBgEEEEAAAQQQQCCAAiT1Aex0QkYAAQQQQAABBBDwlwBJvb/6k2gQQAABBBBAAAEEAihAUh/ATidkBBBAAAEEEEAAAX8JkNT7qz+JBgEEEEAAAQQQQCCAAiT1Aex0QkYAAQQQQAABBBDwlwBJvb/6k2gQQAABBBBAAAEEAihAUh/ATidkBBBAAAEEEEAAAX8JkNT7qz+JBgEEEEAAAQQQQCCAAiT1Aex0QkYAAQQQQAABBBDwlwBJvb/6k2gQQAABBBBAAAEEAihAUh/ATidkBBBAAAEEEEAAAX8JkNT7qz+JBgEEEEAAAQQQQCCAAiT1Aex0QkYAAQQQQAABBBDwlwBJvb/6k2gQQAABBBBAAAEEAihAUh/ATidkBBBAAAEEEEAAAX8JkNT7qz+JBgEEEEAAAQQQQCCAAiT1Aex0QkYAAQQQQAABBBDwlwBJvb/6k2gQQAABBBBAAAEEAiiQdVJvWVYAuQgZAQQKSSCT41Qm2xRSzLQVAQQQQKDwBbL5bso6qS98LiJAAAEEEEAAAQQQQMAfAiT1/uhHokAAAQQQQAABBBAIsABJfYA7n9ARQAABBBBAAAEE/CFAUu+PfiQKBBBAAAEEEEAAgQALkNQHuPMJHQEEEEAAAQQQQMAfAiT1/uhHokAAAQQQQAABBBAIsABJfYA7n9ARQAABBBBAAAEE/CFAUu+PfiQKBBBAAAEEEEAAgQALkNQHuPMJHQEEEEAAAQQQQMAfAiT1/uhHokAAAQQQQAABBBAIsABJfYA7n9ARQAABBBBAAAEE/CFAUu+PfiQKBBBAAAEEEEAAgQALkNQHuPMJHQEEEEAAAQQQQMAfAiT1/uhHokAAAQQQQAABBBAIsABJfYA7n9ARQAABBBBAAAEE/CFAUu+PfiQKBBBAAAEEEEAAgQALkNQHuPMJHQEEEEAAAQQQQMAfAiT1/uhHokAAAQQQQAABBBAIsABJfYA7n9ARQAABBBBAAAEE/CFAUu+PfiQKBBBAAAEEEEAAgQALkNQHuPMJHQEEEEAAAQQQQMAfAlkn9ZZl+UOAKBBAwLcCmRynMtnGt0AEhgACCCCQlwLZfDdlndTnpQCNQgABBBBAAAEEEEAggAIk9QHsdEJGAAEEEEAAAQQQ8JcASb2/+pNoEEAAAQQQQAABBAIoQFIfwE4nZAQQQAABBBBAAAF/CZDU+6s/iQYBBBBAAAEEEEAggAIk9QHsdEJGAAEEEEAAAQQQ8JcASb2/+pNoEEAAAQQQQAABBAIoQFIfwE4nZAQQQAABBBBAAAF/CZDU+6s/iQYBBBBAAAEEEEAggAIk9QHsdEJGAAEEEEAAAQQQ8JcASb2/+pNoEEAAAQQQQAABBAIoQFIfwE4nZAQQQAABBBBAAAF/CZDU+6s/iQYBBBBAAAEEEEAggAIk9QHsdEJGAAEEEEAAAQQQ8JcASb2/+pNoEEAAAQQQQAABBAIoQFIfwE4nZAQQQAABBBBAAAF/CZDU+6s/iQYBBBBAAAEEEEAggAIk9QHsdEJGAAEEEEAAAQQQ8JcASb2/+pNoEEAAAQQQQAABBAIoQFIfwE4nZAQQQAABBBBAAAF/CWSd1Fv+ciAaBBDwoUAmx6lMtvEhDSEhgAACCOSxQDbfTVkn9XnsQNMQQAABBBBAAAEEEAiUAEl9oLqbYBFAAAEEEEAAAQT8KEBS78deJSYEEEAAAQQQQACBQAmQ1AequwkWAQQQQAABBBBAwI8CJPV+7FViQgABBBBAAAEEEAiUAEl9oLqbYBFAAAEEEEAAAQT8KEBS78deJSYEEEAAAQQQQACBQAmQ1AequwkWAQQQQAABBBBAwI8CJPV+7FViQgABBBBAAAEEEAiUAEl9oLqbYBFAAAEEEEAAAQT8KEBS78deJSYEEEAAAQQQQACBQAmQ1AequwkWAQQQQAABBBBAwI8CJPV+7FViQgABBBBAAAEEEAiUAEl9oLqbYBFAAAEEEEAAAQT8KEBS78deJSYEEEAAAQQQQACBQAmQ1AequwkWAQQQQAABBBBAwI8CJPV+7FViQgABBBBAAAEEEAiUAEl9oLqbYBFAAAEEEEAAAQT8KEBS78deJSYEEEAAAQQQQACBQAmQ1AequwkWAQQQQAABBBBAwI8CJPV+7FViQgABBBBAAAEEEAiUQPZJvWUFCopgEUCgAAUyOU5lsk0Bhk6TEUAAAQQKWCCL76bsk/oCdqLpCCCAAAIIIIAAAgj4SYCk3k+9SSwIIIAAAggggAACgRQgqQ9ktxM0AggggAACCCCAgJ8ESOr91JvEggACCCCAAAIIIBBIAZL6QHY7QSOAAAIIIIAAAgj4SYCk3k+9SSwIIIAAAggggAACgRQgqQ9ktxM0AggggAACCCCAgJ8EzhxrMP39/WMtgv0RQACBSRfgWDbpXUADEEAAAQTGIDCmpP5LX/7yGKpmVwQQQCA/BDiW5Uc/0AoEEEAAgewFsk7qGdXKHp09EUAgfwQ4luVPX9ASBBBAAIHsBZhTn70deyKAAAIIIIAAAgggkBcCJPV50Q00AgEEEEAAAQQQQACB7AVI6rO3Y08EEEAAAQQQQAABBPJCgKQ+L7qBRiCAAAIIIIAAAgggkL0ASX32duyJAAIIIIAAAggggEBeCJDU50U30AgEEEAAAQQQQAABBLIXGNVPWp5TXJx9TeyJAAIIIIAAAggggAACEyKQUVJ/1pQp8glPjp2QDqBQBBBAAAEEEEAAAQTGKsD0m7EKsj8CCCCAAAIIIIAAApMsQFI/yR1A9QgggAACCCCAAAIIjFWApH6sguyPAAIIIIAAAggggMAkC5DUT3IHUD0CCCCAAAIIIIAAAmMVIKkfqyD7I4AAAggggAACCCAwyQIk9ZPcAVSPAAIIIIAAAggggMBYBTL6SUtTyelTp8ZaF/sHVODMs84aU+QD//7vY9qfnYMrMOUznwlu8ESOAAIITLIA398T0wHpvtsySupNQp+ugIlpLqX6ScD8P3W2ib3Zt+SCC/zEQSw5FPjwgw84duXQm6oQQAABV4Dvb1di/P+m+25j+s34W1MiAggggAACCCCAAAI5FSCpzyk3lSGAAAIIIIAAAgggMP4CJPXjb0qJCCCAAAIIIIAAAgjkVCCjOfU5bRGVIZAsEIkkL+EzAggggAACCOS7AN/fOe0hRupzyk1lCCCAAAIIIIAAAgiMvwBJ/fibUiICCCCAAAIIIIAAAjkVyHz6ja8uoUyR80OVcp7n59P7339PTn6SU3sqy1DA95Nvpl0t31k9Vy6IBnr8ufvlJ0czxBnLZp9eLkvuu0yObfyJHOP0fiyS7IsAAgggkEJgUr+/B8vk2oZbZfDpR+W1vnjjKq5eLbdYz8gjr/XGFya/K9Dvx8yT+uSAC/2zdUo+6uqUjwdyH0hx6UXyud9zEpGpfMRXJ5SJUVdes0aWX90nz967WY5GE+sr5s+XssF90mMlbjvun1xX/eu+Hfc6KBABBBBAILAC+fH9nfo7bti2uV+KBfb9GNykPrD/L0bgeSOgIwHz7IT+6VhCb9p2ZN8+kYlO6PMGgYYggAACCCCAwHgIkNR7FM8qCUnlmb+V3/SZeTjnyLSLz5VTndHR/CklEgqdK2eZa0nW7+Tku33Sb/ZNtVyXVZaKnOz4UE5Ft3E/T9FR+mln68KzL5Li834rnWabVGWY/Xj5WsC6YoZ85fhx+VGqqS+RcrnuOyvkj6ZGCX7xU9n0Y52ToycC39o0Q449LXLLrZfaK4//dLM8HZ2uY5VeE5/KU/SOXgFwThhSLve1LsEhgAACCCAwssCI348pvnfF/U4euficbhHcpD5ylpxfeZGcb7jNVByTvH94Un47fZqcN+UTOX2eZlMn33Om50ST9L5333OS9OJS+YPSc6Rf52hNC31O+juj22XQdf1974l4p9+kLducWPDys0BFWam837c/dYhWj7zyyGZ5xaw1Cb7OC5xfdlT2dZnPl8otMzXJ3/y0WDO+KRt0uk75EZ2uM6hz5Ndowv/oZtnnThXUEwZzwFrzLUuevm+zPaXH3udPZsrRf5jU2Y6p42YpAggggAAC4yUQmSpzV26QuUnlvf+GsyDj70fP9649uHbfLfLNmUdjA2pJxU/ax+Am9Snn1A/IR32/1xH5i+TM/vflN25efdaZMuXMsyV00bnxjjp9Ws4qPlPO7teR/bHMy09XttZkj/LHawzsu2HnvRWwSndvn0ydWarz2btTRlF0+RLZEB2NNxscL9N5gSapt96RZ/7xiER0ik7kyNvyi2/OkGk676/XHvnfL//Yk5isW6WlMrXkUll5z9fi9XxwUsoiTuavpTKnPi7DOwQQQACBcRKY1O9v/SqMWO/L/m0Py76eeECV87+jN8rqOv3ezOj70ezq+d6VoqPy+v6r5ZbS8rTf3/HacvsuuEl9OueBU2Jy9GSYyO80yben5cR3NNN1RH4fX5Dlu1RlZ1mUP3dzb1jxWXSDvb3y/mWXyczBdjmaNIfeuvxbsuGaPnn0vh+JSb2rltwrXzG5urlpxzi4Jp7PpaXTzIr4OrOdvuxNf/Gs3KcnAomvmYllJa7kEwIIIIAAAmMTcL+rxlZKdnubuu3/6e6edgza75119tuRvh91o4TvXS3OW0Z2jZuYvVLN5p2YmgqiVP2py+lmHv178r5MlWnnRBt96rScLj5Xp+UkBnGq//cpl4ueGJw663NydnT7s4o/J0m7xgtKU3Z8A975VqB3n+w/dqncuvZaKXODjFTItX9yrcw0CfrJPjuhl8GZctkMd4P0f3uOvS3vXzpP5pcnniFE+vTkIcXy9CWxBgEEEEAAAf8LZPz9qNNvrr6uwgHR7+RrrhF5+5hn+D9PqJIHpPOkWTlohndOvVY38Nsu+e2ZlXLugI7Im6H6j38r54VCct6AuVH2Q+nsO1MucufgR7fv+jBpeewG2k/k44/PlVB0+4Hf/c4e/Xej6tfP06bFb5RNXfZY5vS4NfE33wXaf3yf9OilwNX3Rmf8WSdl/6OPyJGuXpmx6Va5995bRPSG1+PHMohETxIefrpM7ll1j8wzm+t+z9zzIzmavFxXnTywTR7+eQZlsgkCCCCAAAJ+Fcj0+1Gn3xwfNN/J5oq4JvQ/2aRTeuzx+7ySsZYsWWK3av+BA2kbdvrUKZkyJe1Yc9r9WIGAERgYGJAzz/I86WsULAP//u9y7rmeexlGsS+bIvDb3/5WpnzmM0AggAACCORYwDff3zoy/63Nl8sxM0iWeCE8x6Lx6pK/2+bNdQYGAzlSf9FFF8Vlkt699957SUv4ONkC+XcuPD4iG++9d9iCNt5337DrWYkAAggggEA+C0zm9/dI37Gu24jftXYQ+o/5vzxJ6t22J/8NZFJP4p78nwGfJ0NgxAPJZDSKOhFAAAEEEPCBQBC/YwOZ1Pvgv1VCQAABBBBAAAEEEJhogTOOyj/ee1TvU5voisZefsZJ/WReQhl7mJRQyAKT+ju3hQxH2xFAAAEEEJhEAb6/c4ufcVKf22ZRGwJxAQ4KcQveIYAAAgggUCgCfH/ntqcK4GJCbkGoDQEEEEAAAQQQQACBQhMgqS+0HqO9CCCAAAIIIIAAAggkCWQ0/cb8xvgp/a1xXghkI5Dtb9SbusxvjPd/8kk21bIPAvxGPf8NIIAAApMkwPf3xMGne/5KRkm9adZYErOJC4uSgyCQ7j/eIMROjAgggAACCBSqAN/fue05pt/k1pvaEEAAAQQQQAABBBAYdwGS+nEnpUAEEEAAAQQQQAABBHIrQFKfW29qQwABBBBAAAEEEEBg3AVic+rnzZ077oVTIAIIIIAAAggggAACCEy8ACP1E29MDQgggAACCCCAAAIITKiAdfbZZ0cmtAYKRwABBBBAAAEEEEAAgQkV+P8BD3faq9AsVqQAAAAASUVORK5CYII=[/img]
Отправка заявки айсберг с использованием полей на англ. языке
Пользователь
Сообщений: Регистрация: 23.06.2019
05.11.2019 17:33:15
В скрипте используются имена полей на английском языке. Терминал на русском языке. При выводе в tri вижу следующее:
Код
TRANS_ID=1;CLASSCODE=TQBR;ACTION=Ввод айсберг заявки;Торговый счет=NNNN;К/П=Купля;Тип=Лимитная;
Тип по цене=По разным ценам;Тип по остатку=Поставить в очередь;Тип ввода значения цены=По цене;Назначение заявки=По умолчанию;
Тип события активации заявки=Обычная заявка;Режим=TQBR;Инструмент=AFLT;Цена=99.90;Лоты=110;Примечание=;Объем заявки=0.00;
Код внешнего пользователя=;Время активации=;Доп. инфо=;Фирма торгового счета=;Видимое количество=100;
Скорость обработки заявок при помощи OnTransReply gate_reply_time
Пользователь
Сообщений: Регистрация: 23.06.2019
07.10.2019 23:17:30
После просмотра своих заявок в full order log на МосБирже подтвердилось, что gate_reply_time - это время получения заявки торговой системой биржи. Именно gate_reply_time используется в исторических данных биржи как время заявки. Соответственно, поле datetime в таблице trades - это время исполнения сделки, также присваивается биржей. Эти поля совпадают если заявка сразу исполняется.
Минимальный размер видимой части у айсберга
Пользователь
Сообщений: Регистрация: 23.06.2019
04.10.2019 09:55:01
Получается этого параметра нет в биржевом дата фиде, который рассылает ежедневную информацию об инструментах (те же лоты, min/max по цене и пр.)? Если так, то это действительно недоработка со стороны биржи. Что странно, так как за айсберги биржа получает дополнительную комиссию.